草庐IT

mysql - INSERT INTO table DEFAULT(key_col) 插入零?

我在tbl中有这个主键列:`id`INT(5)unsignedNOTNULLAUTO_INCREMENTPRIMARYKEY当我运行下面的查询时,插入零而不是下一个自动递增数字:INSERTINTO`tbl`(id,col1,...)VALUES(DEFAULT(id),"value1",...)有趣的是,这种行为是最近发生的,让我想知道我可能更改了哪些设置会导致这种情况。我首先考虑的是NO_AUTO_VALUE_ON_ZERO。我已将其添加到配置文件中的sql_mode,现在是这样的:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLE

mysql - PostgreSQL:有效的变量分配示例?

看完thisquestion,我正在尝试将一些SQL从MySQL转换为PostgreSQL。因此我需要变量赋值:INSERTINTOmain_categorie(description)VALUES('Verbenormal');SET@PRONOMINAL:=SELECTLAST_INSERT_ID();INSERTINTOmain_mot(txt,im,date_c,date_v_d,date_l)VALUES('jem''abaisse',1,NOW(),NOW(),NOW());SET@verbe_149=SELECTLAST_INSERT_ID();INSERTINTOmai

MySQL 插入查询失败

我正在使用backand.com进行查询,如果电子邮件尚未使用,则尝试在用户表中创建记录:INSERTINTOusers(email,firstName,lastName,password)SELECT*FROM(SELECT'{{email}}','test','person','{{password}}')AStmpWHERENOTEXISTS(SELECTemailFROMusersWHEREemail='{{email}}')LIMIT1;它验证了,但是当我用参数运行它时:email:dave@gmail.compassword:test我得到错误:发生错误,请重试或联系管理员

mysql - python mysql insert syntax error 当只有一个变量

我正在使用Python2,如果这对这个问题很重要的话。我正在玩mysql.connector作为学习练习,并构建了一些工作插入,然后遇到了一个奇怪的(对我来说)问题——我确定我做错了一些简单的事情。我正在为几个表格插入两列,类似于下面的第一个示例;当我遇到只插入一列的情况时,出现语法错误。为什么像这样的语法可以正常工作的任何想法:query_publisher="INSERTINTOpublisher(name,name2)"\"VALUES(%s,%s)"\"ONDUPLICATEKEYUPDATEPUBLISHER_ID=LAST_INSERT_ID(PUBLISHER_ID)"a

mysql - jOOQ 为嵌套选择生成的 SQL 在 MySQL/MariaDB 中不起作用

对于经典排名问题(每个玩家最好的3个结果的总和)我使用jOOQDSL和Scala提出了以下子查询(嵌入作为选择值并加入更复杂的查询中):valtr1=TOUR_RESULT.as("tr1")valtr2=TOUR_RESULT.as("tr2")valinner:Table[Record1[java.lang.Integer]]=DSL.select(count().as("count")).from(tr2).where(tr1.PLAYER_ID.eq(tr2.PLAYER_ID).and(tr1.NSP_SCORE.le(tr2.NSP_SCORE))).asTable("tr

mysql - 后跟 SELECT LAST_INSERT_ID 时 INSERT 不起作用

有很多关于LAST_INSERT_ID()的问题就我而言,问题是:当INSERT后跟SELECTLAST_INSERT_ID()时,没有插入任何记录INSERTINTOsequences(state)VALUES(0);selectLAST_INSERT_ID();>>>80//nothingisaddedtoDBINSERT它自己的作品OKINSERTINTOsequences(state)VALUES(0);>>>selectLAST_INSERT_ID();>>>81//rowisinserted为了测试,我使用的是SequelPro,DB是Amazon的RDSMySQL。当我使

mysql - Zend_Db last_insert_id 返回超大数

我有一个主键是64位BigInt的MySql表我正在使用Zend_Db(ZendFramework1.8.4)插入一个新行,然后调用lastInsertId()来检索新行的id,我得到的是一个超大数字,例如18446744072633694008,这个数字发生了变化有时,但总是这么大。自动递增索引设置为0,并且在数据库中记录实际上插入了正确的主ID,(0,1,2...),只是从lastInsertId()返回的ID给出了奇怪的数字。这是不处理64位数字的Zend_db的已知问题吗?环境:Zend框架1.8.432位机器上的Apache2,操作系统MySQL5.1PHP5.2.4MySQ

sql - 帮助进行 SQL 查询

我的表:suggestions:suggestion_id|title|description|user_id|status|created_timesuggestion_comments:scomment_id|text|user_id|suggestion_idsuggestion_votes:user_id|suggestion_id|value其中值是分配给投票的点数。我希望能够选择:suggestion_id、标题、评论数和该建议的值的总和。按值的总和排序。限制30有什么想法吗? 最佳答案 您可能想尝试使用子查询,如下所示

mysql - 如果不存在则插入 MySql

这是MSSQL代码ifnotexists(selectPIdfromPersonwhereName='Name1'andSurname='Surname1')INSERTINTO[someDb].[dbo].[Person]([Name],[Surname])VALUES('Name1','Surname1')你能帮我为我的sql编写ekvivalent代码吗谢谢 最佳答案 假设您在(name,surname)上有一个唯一索引,您可以使用INSERTIGNORE:INSERTIGNOREINTO`someDb`.`Person`(`

mysql - 如何一次处理多个插入

我需要一次运行多个查询。下面你可以看到一个例子。我如何确定在表A上进行插入并将最后一个插入ID存储在变量上之后,如果同时发生另一个插入,它将是插入到其他表上的正确值?我是否必须锁定所有表、运行查询然后解锁表?我读了一些关于交易的东西。我需要它们吗?感谢您的任何建议。createtablea(idintnotnullauto_incrementprimarykey,namevarchar(10))engine=innodb;createtableb(idintnotnullauto_incrementprimarykey,id_aint)engineinnodb;createtablec