【393天】我愛刷題系列152(2018.03.05)

@(一隻心中無碼的程序員)專欄html

叨叨兩句

  1. ~

SQL習題047

題目描述
在audit表上建立外鍵約束,其emp_no對應employees_test表的主鍵id。
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
);sql

本題‘OJ系統太死板,只注重代碼形式,不注重代碼意義,連代碼前縮進四個空格,KEY和(EMP_no)之間除去空格等都規定死了,多是因爲OJ系統沒法從意義上判斷EMP_no是否設置爲了 employees_test(ID)的外鍵所致。
因爲SQLite中不能經過 ALTER TABLE ... ADD FOREIGN KEY ... REFERENCES ... 語句來對已建立好的字段建立外鍵,所以只能先刪除表,再從新建表的過程當中建立外鍵。可參考:
http://www.sqlite.org/foreignkeys.html
https://zhidao.baidu.com/question/350164703.html

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);
相關文章
相關標籤/搜索