我有一个存储过程,可以将一行插入具有自动递增列的表中。它给了我一个警告,但如果我简单地将“”作为自动增量列的值,它就会成功。我目前摆脱错误的方法是指定插入值用于哪些列...“插入app_table(app_id,name,...)值(...)”但自动增量列是唯一的没有插入。有没有更清洁的方法来做到这一点?就像指定不向哪些列插入值一样?
问问题
178 次
3 回答
3
您可能会收到以下警告:
mysql> show warnings;
+---------+------+------------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------------+
| Warning | 1264 | Out of range value adjusted for column 'id' at row 1 |
+---------+------+------------------------------------------------------+
1 row in set (0.00 sec)
而不是""
auto_increment 列,使用NULL
并且警告将消失。auto_increment 值将正确递增。无需列出insert
语句中的所有列(尽管许多人认为这是一种很好的做法)。
于 2009-12-25T17:55:54.723 回答
1
如果您不想为所有列提供值,则应指定要插入的列。
没有捷径,除了*
.
于 2009-12-25T17:49:42.630 回答
0
除了填充除 id 之外的每一列(以及您希望保留默认值或 null 的任何其他字段)之外,还有比填充每一列更清洁的方法吗?当您这样做时,您只需省略自动生成的信息,因此它需要的参数比任何其他方式都少,这似乎是最干净的方式。
于 2009-12-25T17:53:13.630 回答