【问题标题】:How to skip all the column names in MySQL when the table has auto increment primary key?当表具有自增主键时,如何跳过 MySQL 中的所有列名?
【发布时间】:2011-02-11 20:41:44
【问题描述】:

一个表是:

mysql> desc gifts;
+---------------+-------------+------+-----+---------+----------------+
| Field         | Type        | Null | Key | Default | Extra          |
+---------------+-------------+------+-----+---------+----------------+
| giftID        | int(11)     | NO   | PRI | NULL    | auto_increment |
| name          | varchar(80) | YES  |     | NULL    |                |
| filename      | varchar(80) | YES  |     | NULL    |                |
| effectiveTime | datetime    | YES  |     | NULL    |                |
+---------------+-------------+------+-----+---------+----------------+

以下是可以的:

mysql> insert into gifts
    -> values (10, "heart", "heart_shape.jpg", now());
Query OK, 1 row affected (0.05 sec)

但是有没有办法不指定“10”...而让每个都是 11、12、13...?

我可以用

mysql> insert into gifts (name, filename, effectiveTime)
    -> values ("coffee", "coffee123.jpg", now());
Query OK, 1 row affected (0.00 sec)

但列名需要全部指定。有没有办法不必指定它们并且主键的自动增量仍然有效?谢谢。

【问题讨论】:

  • 虽然这是一种观点,但明确指定列名通常是一种很好的做法,这可以确保如果将来表以任何方式更改(例如添加了额外的列),预期值会进入预期的列。

标签: sql mysql insert primary-key auto-increment


【解决方案1】:
values (NULL, "heart", "heart_shape.jpg", now());

【讨论】:

    猜你喜欢
    • 2020-02-17
    • 2022-01-17
    • 2022-11-10
    • 2011-03-18
    • 2014-07-27
    • 2012-02-03
    • 2011-07-21
    相关资源
    最近更新 更多