Mat*_*ley 5 mysql autoincrement
长话短说,我有一个 SQL 文件,我想将其作为skel样式文件导入,因此这将以编程方式重复执行。我可以随心所欲地编辑 SQL 文件,但我不想接触应用程序本身。
此应用程序用于userid = 0表示匿名用户。它在数据库中还有一个相关的(空白)条目来表示这个“用户”。因此,我的行skel.sql看起来像这样:
INSERT INTO `{{TABLE_PREFIX}}users` VALUES (0, '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, 0, NULL, '', '', '', NULL);
Run Code Online (Sandbox Code Playgroud)
问题在于这uid是一个auto_increment字段,从技术上讲,它0是一个无效值。或者至少,如果您将其设置为 0,您基本上是在告诉 MySQL,“请在此字段中插入下一个 id”。
现在,我想我可以把一个INSERT那么UPDATE查询到我的SQL文件,但有没有告诉MySQL的一般,是的,其实我是想以插入的方式0进入这个领域?
您可以使用:
SET [GLOBAL|SESSION] sql_mode='NO_AUTO_VALUE_ON_ZERO'
Run Code Online (Sandbox Code Playgroud)
其如所描述的在这里,将防止从MySQL的解释0-2的插入/更新ID为下一个序列ID。这种行为将被限制为 NULL。
不过,我认为应用程序的行为非常糟糕。您必须非常小心它的使用是否一致,特别是如果您选择在以后实施复制。
| 归档时间: |
|
| 查看次数: |
9243 次 |
| 最近记录: |