mysql - 如何为mysql中的主自动增量整数赋予有效的默认值?

标签 mysql increment auto

我正在使用 MySQL 6.3 和 JDBC。 我不知道下面的查询中自动增量主键的有效值是什么

CREATE TABLE IF NOT EXISTS CUSTOMER (customerID INTEGER NOT NULL AUTO_INCREMENT DEFAULT '1', customerName VARCHAR(20), customerLastName VARCHAR(40)", customerPhoneNumber VARCHAR(11), customerCharge INTEGER, PRIMARY KEY (customerID));

我尝试了“0”、1、0 甚至 null,而不是“1”作为默认值。即使在我搜索的很多来源中,他们也使用了 null 默认值

NOT NULL

在查询中,但我的给出了异常(exception)。

使用 UNIQUE 而不是 PRIMARY KEY 对我来说效果很好,但我想问是否有一个解决方案可以将主键、自动增量和默认值保持在一起。

最佳答案

默认值对于 AUTO_INCRMENT 来说并没有真正的意义。 AUTO_INCRMENT 基本上意味着默认值是最高值的+1(或+x)(可以在表上设置)。

换句话说,永远不要同时使用 AUTO_INCRMENT 和 DEFAULT。

编辑 我不知道你真正使用的 mysql 版本是什么,但在 5.7 上这可以按预期工作:

CREATE TABLE IF NOT EXISTS CUSTOMER (customerID INTEGER NOT NULL AUTO_INCREMENT, customerName VARCHAR(20), customerLastName VARCHAR(40), customerPhoneNumber VARCHAR(11), customerCharge INTEGER, PRIMARY KEY (customerID));

关于mysql - 如何为mysql中的主自动增量整数赋予有效的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53327967/

相关文章:

php - 基于现有日期的时间预测 :time records

c++ - 可以返回兄弟对象的函数的自动返回类型

java 用 for 递增只能运行一次

node.js - 无法找到 id 并更新和增量子文档 - 返回 null Mongoose/mongoDB

javascript - 如何添加时间加上并重新计算日期时间

c++ - 无法推断出 const auto&

c++ - 了解 vector 中的.begin和.end

php - Codeigniter 检查 index.php 文件中是否已登录

php - 如何在 php 中使用准备好的语句来选择(使用 SELECT)数据库的列?

MySQL (0x80004005) 无法连接到任何指定的 MySQL 主机(在非开发计算机上)