牛客SQL练习第46题

题目描述

在audit表上创建外键约束,其emp_no对应employees_test表的主键id。
(audit已经创建,需要先drop)

CREATE TABLE employees_test(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
CREATE TABLE audit(
EMP_no INT NOT NULL,
create_date datetime NOT NULL
);

解答

SQLite中不能通过 alter table … add foreign key … references … 语句来对已创建好的字段创建外键,可以先删除表,然后在重新建表时创建外键

drop table audit;
create table audit(
    EMP_no int not null,
    create_date datetime not null,
    foreign key(EMP_no) references employees_test(ID)
);

在SQLite中还可以这样写:

drop table audit;
create table audit(
    EMP_no int not null references employees_test(ID),
    create_date datetime not null);

在MySQL中可以使用alter完成:

alter table audit add foreign key(emp_no) references employees_test(id)

你可能感兴趣的:(牛客,#,SQL,sql)