mysql - 我们是否必须明确提及主键的非空约束?

标签 mysql sql primary-key

创建表时是否必须明确指出主键不应该为空?即使我们不提及主键的“not null”约束,SQL 也不允许我们将 NULL 值插入到主键字段中。因此,以下哪一项是好的做法?

1)    create table registration(
        id int primary key,
        name varchar(10)

    )

2)     create table registration(
        id int primary key not null,
        name varchar(10)

    )

最佳答案

No你不知道。

A PRIMARY KEY is a unique index where all key columns must be defined as NOT NULL. If they are not explicitly declared as NOT NULL, MySQL declares them so implicitly (and silently). A table can have only one PRIMARY KEY. The name of a PRIMARY KEY is always PRIMARY, which thus cannot be used as the name for any other kind of index.

不过,我认为明确说明是一种很好的做法 - 因为这会让事情变得更加清晰, 而且您不必每次有疑问时都查找这条规则。

关于mysql - 我们是否必须明确提及主键的非空约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16481037/

相关文章:

sql - 将主键添加到 sql View

sql - 将 Oracle 序列重置为现有列中的下一个值的最佳方法?

mysql - MySQL 中的重复 PK

sql - 查找数据库中引用某个主键的所有外键约束

php - Parent 按子表数量排序

php - while循环中使用INSERT语句的多个REST-API请求

php - 查询以将表中的行与数字列表进行匹配,按匹配的行数排序,并与标签进行匹配并执行相同的操作?

php - 调用非对象上的成员函数 execute(),PHP/SQL

php - mysql 从下拉列表中选择

sql - 从整数转向 GUID 作为主键