首页 > 解决方案 > 两张桌子上的唯一键

问题描述

是否可以使两个表具有唯一键,例如,如果我的第一个表具有唯一键,而第二个表不能与第一个表具有相同的文本,则可以这样做吗?

-- -- 表的表结构admin

如果存在则删除表admin;如果不存在则创建表adminIDvarchar(11) NOT NULL、 Namevarchar(100) NOT NULL、 Passwordvarchar(100) NOT NULL、 Emailvarchar(100) NOT NULL、 PhoneNumbervarchar(255) NOT NULL、 UniqueCodevarchar(255) NOT NULL、主键( ID), 唯一键UniqueCode( UniqueCode) ) ENGINE=MyISAM 默认字符集=latin1;

-- -- 转储表数据admin

插入admin( ID, Name, Password, Email, PhoneNumber, UniqueCode) 值 ('AA11', 'Admin Low', '827ccb0eea8a706c4c34a16891f84e7b', 'AA11@gmail.com', '6012346778', 'Lmao'), ('AA12', 'Admin Tyler' , '827ccb0eea8a706c4c34a16891f84e7b', 'AA11@gmail.com', '6033556778', 'Rofl');


-- -- 表的表结构lecturer

如果存在则删除表lecturer;如果不存在则创建表lecturerIDvarchar(11) NOT NULL、 Namevarchar(100) NOT NULL、 Passwordvarchar(100) NOT NULL、 Emailvarchar(100) NOT NULL、 PhoneNumbervarchar(255) NOT NULL、 UniqueCodevarchar(255) NOT NULL、主键( ID), 唯一键UniqueCode( UniqueCode) ) ENGINE=MyISAM 默认字符集=latin1;

-- -- 转储表数据lecturer

插入lecturer( ID, Name, Password, Email, PhoneNumber, UniqueCode) 值 ('AL11', 'Cat Eat my son', '827ccb0eea8a706c4c34a16891f84e7b', 'AL11@gmail.com', '6012342222', 'Meow'), ('AL12', 'Dog'吃我儿子','827ccb0eea8a706c4c34a16891f84e7b','AL12@gmail.com','6033345678','Woof');

标签: mysql

解决方案


您可以通过使用“EXIST”在插入数据之前简单地检查。EXISTS 运算符用于测试子查询中是否存在任何记录。如果子查询返回一条或多条记录,则 EXISTS 运算符返回 TRUE。

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);
 

推荐阅读