我正在学习数据库课程,我们只使用sqlite3。我们被要求在CREATE TABLE
语句中写一个sqlite3似乎不支持的约束。这是我到目前为止所做的:
CREATE TABLE Product
(
maker varchar(1),
model varchar(4),
type varchar(10),
CHECK (model IN (SELECT model FROM PC) OR
model IN (SELECT model FROM Laptop) OR
model IN (SELECT model FROM Printer))
);
我想知道这个陈述在MySQL之类的内容是否合法,以及它是否真的按照我的意愿行事。我有三张桌子; PC,笔记本电脑和打印机,我希望表Product的model属性在这三个表中的任何一个表中都有相应的型号。
好的,请原谅我提出一个诚实的问题......感谢那些指点我在网上的小提琴方向的人。
答案 0 :(得分:3)
您应该使用fileds Models
,model_id
(打印机,笔记本电脑等等),制造商等创建表格type
。
不要为PC,笔记本电脑和打印机制作3个不同的表格。
Sqlite还支持外键。你应该阅读更多关于它们的信息。