constraint *** primary key (***)用法举例
时间: 2024-01-01 16:03:37 浏览: 71
`constraint *** primary key (***)` 是用来在MySQL中创建主键约束的语法。它可以用于创建一个或多个列的主键。下面是一个示例:
```sql
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(20),
age INT
);
```
在上面的示例中,我们创建了一个名为`students`的表,其中`id`列被指定为主键。这意味着`id`列的值必须是唯一的,并且不能为NULL。
相关问题
参照完整性: (2)FOREIGN KEY 用insert语句(或者update语句)对StuCourse表进行更新操作(具体数据自行举例),观察执行结果。 ①外码为null的情况
假设StuCourse表的结构如下:
```
StuCourse(
sid INT, -- 学生编号
cid INT, -- 课程编号
grade INT, -- 成绩
PRIMARY KEY(sid, cid),
FOREIGN KEY(sid) REFERENCES Student(id),
FOREIGN KEY(cid) REFERENCES Course(id)
);
```
如果我们尝试插入一条外码为null的记录,例如:
```
INSERT INTO StuCourse(sid, cid, grade) VALUES (1001, NULL, 85);
```
则会抛出以下错误:
```
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`database`.`StuCourse`, CONSTRAINT `StuCourse_ibfk_2` FOREIGN KEY (`cid`) REFERENCES `Course` (`id`))
```
这是因为StuCourse表的cid列是一个外码,参照Course表的id列。而我们在插入记录时将cid列值设为了NULL,这违反了外码的完整性约束。因此,数据库系统拒绝了该插入操作。
请用学生表举例,主键为ID
好的,假设我们有一个名为`students`的学生表,其中包含一个名为`ID`的主键。下面是在不同数据库系统中移除主键的示例:
1. MySQL:
```sql
ALTER TABLE students DROP PRIMARY KEY;
```
2. Oracle:
```sql
ALTER TABLE students DROP CONSTRAINT pk_students;
```
其中,`pk_students`是主键约束的名称,你可以通过查询系统表或视图来获取该名称。
3. SQL Server:
```sql
ALTER TABLE students DROP CONSTRAINT PK_students;
```
其中,`PK_students`是主键约束的名称,你可以通过查询系统表或视图来获取该名称。
4. PostgreSQL:
```sql
ALTER TABLE students DROP CONSTRAINT pk_students;
```
其中,`pk_students`是主键约束的名称,你可以通过查询系统表或视图来获取该名称。
请注意,在实际使用时,你需要根据你的数据库和表结构进行适当的更改。
阅读全文