MySQL支持以下几种约束:
1. NOT NULL约束:指定的列不能为空,如果不给行指定值,MySQL会报错。
sql CREATE TABLE person ( id INT NOT NULL, name VARCHAR(20) NOT NULL );
2. DEFAULT约束:为列指定默认值,如果没有给行指定值,则使用默认值。
sql CREATE TABLE person ( id INT NOT NULL, name VARCHAR(20) DEFAULT 'John' );
3. PRIMARY KEY约束:指定某列值为主键,主键的值必须唯一而且不能为空。一个表只能有一个主键。
sql CREATE TABLE person ( id INT PRIMARY KEY, name VARCHAR(20) );
4. UNIQUE约束:指定某列值唯一,但可以为空。表中可以有多个UNIQUE约束。
sql CREATE TABLE person ( id INT, name VARCHAR(20), UNIQUE(name) );
5. CHECK约束:指定列值符合某个条件。
sql CREATE TABLE person ( id INT, age INT CHECK (age > 18) );
6. FOREIGN KEY约束:指定某列值为外键,用于跟其他表建立关联并保证引用完整性。
sql CREATE TABLE person ( id INT PRIMARY KEY, country_id INT, FOREIGN KEY(country_id) REFERENCES country(id) );