草庐IT

MySQL INSERT IF NOT EXIST else DELETE 行

我有一张表将另外2个表链接在一起。我有一个复选框列表,当其中一个被选中时,它会通过ajax将值发送到服务器。我想做的是,如果值不在数据库中,则插入它们(选中),或者如果它们存在,则删除它们(未选中)有没有办法不用写几个查询就可以做到?我知道插入/更新并不难,但是删除呢? 最佳答案 您可以随时删除,如果受影响的行为0,则插入。简单、简单且有效。 关于MySQLINSERTIFNOTEXISTelseDELETE行,我们在StackOverflow上找到一个类似的问题:

php - 在不求助于 mysql_insert_id() 的情况下,在单个查询中将 SQL 关系插入到 2 个表

我对SQL并不完全陌生,但我对MYSQL感到生疏和挣扎(使用PhPMyAdmin)...看了这个:MySQLinserttomultipletables(relational)和其他一些相关主题,但还没有找到答案。我正在简化示例以阐明要点。如果你有两个表:'table1'has:id(primarykey,auto-increment),description(text)'table2'has:id(primarykey,auto-increment),title(text),description_id(int)如何创建单个INSERT语句以便description_id存储tabl

sql - 带有 last_insert_id() 的 Mysql 多行插入选择语句

好的。所以简而言之,我正在尝试执行INSERTSELECT,例如:STARTTRANSACTION;INSERTINTOdbNEW.entity(commonName,surname)SELECTnamefirst,namelastFROMdbOLD.user;SET@key=LAST_INSERT_ID();INSERTINTOdbNEW.user(userID,entityID,other)SELECTuser_id,@key,otherFROMdbOLD.user;COMMIT;当然,@key不会从每个插入返回每个后续的LAST_INSERT_ID(),而是仅从最后一个插入返回I

MySQL 日期时间 : insert a date with timezone offset

我尝试将时间戳插入“日期”中:INSERTINTOdatesVALUES(4,"2011-10-0412:58:36-0600")4只是一个ID。在表中插入为:2011-10-0412:58:36or0000-00-0000:00:00所以我的问题是,时差-0600丢失了。我怎样才能插入它呢? 最佳答案 您可以使用SUBSTR()将其截断并使用CONVERT_TZ()对其进行转换。http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substrh

与 MYISAM 相比,在插入期间使用 InnoDB 的 mysql 速度较慢

我刚刚安装了具有InnoDB默认引擎的MySQL5.5,并且发现INSERT查询真的很慢!禁用general-log后它变得好一点但仍然很慢。我分析mysql以找到问题但没有机会。这是比较这个的基准:使用500行测试一个(n)MYISAM表。-每秒5866次插入。-每秒128866行读取。-每秒56306次更新。使用500行测试一个(n)个INNODB表。-每秒9次插入。-每秒28539行读取。-每秒4358次更新。我在InnoDB上有9个插入查询,而在MyISAM上有5866个。这是我的my.ini(Windows864位):[mysql]default-character-set=

php - 如果我为每个插入请求调用一个方法,我是不是在浪费服务器时间

我正在根据OOP的概念开发PHP,这是名为“connect”的类,它连接到数据库并将请求插入数据库_classconnect(){publicfunctioninsert($column,$value){$insert=mysqli_query($this->con,"INSERTINTO$tablename($column)VALUES('$value')");}/*endofinsertmethod*/}/*endofclass'connect'*/我只是想知道,如果我每次都通过为每个请求调用“插入”方法来插入,这是浪费时间还是浪费更多的服务器时间?或者我应该只使用一种方法来插入所

mysql - 当列数与值数不匹配时插入

我有一个插入sql语句,例如INSERTINTO`table_a`(`col_a`,`col_b`,`col_c`,`col_d`)VALUES(1,2,3,4),(2,1,6,9),(3,1,4,5)我想将它插入到另一个表中,但是我想插入它的表与sql语句的结构不同(它的字段更少),例如table_bhascolumns'col_a','col_b','col_d'我必须对原始sql语句做些什么才能将其插入到table_b中。我想这可能只是忽略col_c中的值并将其发送到临时变量而不是字段。例如INSERTINTO`table_b`(`col_a`,`col_b`,@temp_var

php - 在哪里回滚 PDO 中的事务?

我的问题是,我有一个来自此链接的数据库设计ismydatabaseoverdesigned?编辑*好的,也许使用交易?但是如果失败我应该把回滚放在哪里?$dbConnect->beginTransaction();$RegisterInsert=$dbConnect->prepare("INSERTINTOcompanies(`name`,`address`,`email`,`phone`,`link`,`verified`)VALUES(:name,:address,:email,:phone,:link,:verified)");$RegisterInsert->execute($

mysql - 使用Mysql对链接表进行多次INSERT

我有两个表,一个链接到另一个的主键。目前我INSERT到A表,得到LAST_INSERT_ID,然后INSERT到B表。但我有数百条记录要插入,我想加快速度。在Mysql中你可以:INSERTINTOtable_a(v1,v2,c3)VALUE(0,1,2);INSERTINTOtable_a(v1,v2,v3)VALUE(4,5,6);等等,或者INSERTINTOtable_a(v1,v2,v3)VALUE(0,1,2),(4,5,6),etc以更快地添加多个条目-但仅限于一个表。当然后者要快得多。我想知道是否可以使用存储过程通过两个链接表为我的示例复制此行为,以及它是否会在性能上

php - 避免在 INSERT 查询中重复唯一键

我有一个MySQL查询,如下所示:INSERTINTObeer(name,type,alcohol_by_volume,description,image_url)VALUES('{$name}',{$type},'{$alcohol_by_volume}','{$description}','{$image_url}')唯一的问题是name是一个唯一值,这意味着如果我遇到重复项,我会得到这样的错误:Errorstoringbeerdata:Duplicateentry'HocusPocus'forkey2有没有一种方法可以确保SQL查询不会在不对整个数据库运行SELECT查询的情况下