我有两张table。
我想只允许在A中已存在该电子邮件的B中添加新条目。有没有什么方法可以通过FK来完成这个操作,或者我需要某种触发器?
piztneat1#
您可以在Table B的Email列上添加外键约束,以保持完整性。
ALTER TABLE B ADD CONSTRAINT fk_email FOREIGN KEY ( EMAIL ) REFERENCES A ( EMAIL );
0ejtzxu12#
唯一电子邮件应存储在单独的表X中:
X
CREATE TABLE X (email VARCHAR(255) PRIMARY KEY);
或者更好:
CREATE TABLE X (id INTEGER PRIMARY KEY, email VARCHAR(255) UNIQUE);
那么,表A和B都应该有一列email或email_id引用表X的email或id:
A
B
email
email_id
id
CREATE TABLE A (id INTEGER PRIMARY KEY, email VARCHAR(255) REFERENCES X(email)); CREATE TABLE B (id INTEGER PRIMARY KEY, email VARCHAR(255) REFERENCES X(email));
或:
CREATE TABLE A (id INTEGER PRIMARY KEY, email_id INTEGER REFERENCES X(id)); CREATE TABLE B (id INTEGER PRIMARY KEY, email_id INTEGER REFERENCES X(id));
2条答案
按热度按时间piztneat1#
您可以在Table B的Email列上添加外键约束,以保持完整性。
0ejtzxu12#
唯一电子邮件应存储在单独的表
X
中:或者更好:
那么,表
A
和B
都应该有一列email
或email_id
引用表X
的email
或id
:或: