长话短说,我有一个想要作为skel
样式文件导入的SQL文件,因此这将以编程的方式重复执行。我可以随心所欲地编辑SQL文件,但我不想接触应用程序本身。
此应用程序使用userid = 0
表示匿名用户。它在数据库中也有一个相关的(空白)条目来表示这个“用户”。因此,我的skel.sql
中的代码行如下所示:
INSERT INTO `{{TABLE_PREFIX}}users` VALUES (0, '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, 0, NULL, '', '', '', NULL);
这样做的问题是,uid
是一个auto_increment
字段,从技术上讲,0
是一个无效值。或者至少,如果您将其设置为0,您基本上就是在告诉MySQL,“请将下一个id插入到这个字段中。”
现在,我想我可以把一个INSERT
然后一个UPDATE
查询放到我的SQL文件中,但是有没有一种方法可以告诉MySQL,是的,我真的想把0
插入到这个字段中?
发布于 2015-07-01 08:31:05
如果您不想处理mysql变量,这里有一个有用的技巧:
INSERT INTO `{{TABLE_PREFIX}}users` VALUES (-1, '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, 0, NULL, '', '', '', NULL);
然后
UPDATE `{{TABLE_PREFIX}}users` SET id = 0 where id = -1;
显然,这假设您使用的是有符号整数,而不是表ids的负值。
https://stackoverflow.com/questions/1142472
复制相似问题