如何给mysql中的一个主自动递增整数指定有效的默认值?

abithluo  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(395)

我正在使用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作为默认值
非空
但我的回答是个例外。
使用unique而不是primary key对我来说很好,但是我想知道是否有一个解决方案可以将primary key、auto increment和默认值保持在一起。

ttp71kqs

ttp71kqs1#

默认值在自动递增时没有实际意义。自动增量基本上意味着默认值是最高值的+1(或+x)(可以在表上设置)。
换句话说,不要同时使用自动增量和默认值。
编辑我不知道您真正使用的是哪个版本的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));

相关问题