mysql - 两张桌子上的唯一键
问题描述
是否可以使两个表具有唯一键,例如,如果我的第一个表具有唯一键,而第二个表不能与第一个表具有相同的文本,则可以这样做吗?
-- -- 表的表结构admin
如果存在则删除表admin
;如果不存在则创建表admin
(
ID
varchar(11) NOT NULL、
Name
varchar(100) NOT NULL、
Password
varchar(100) NOT NULL、
Email
varchar(100) NOT NULL、
PhoneNumber
varchar(255) NOT NULL、
UniqueCode
varchar(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
;如果不存在则创建表lecturer
(
ID
varchar(11) NOT NULL、
Name
varchar(100) NOT NULL、
Password
varchar(100) NOT NULL、
Email
varchar(100) NOT NULL、
PhoneNumber
varchar(255) NOT NULL、
UniqueCode
varchar(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');
解决方案
您可以通过使用“EXIST”在插入数据之前简单地检查。EXISTS 运算符用于测试子查询中是否存在任何记录。如果子查询返回一条或多条记录,则 EXISTS 运算符返回 TRUE。
SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);
推荐阅读
- containers - 服务容器未使用环境变量进行更新
- powerbi - 基于power bi中另一个表的过滤矩阵
- ajax - laravel modal 显示客户端信息
- jupyter-notebook - 在 Jupyter Notebook 中应用安全性的最佳方法是什么?
- python - 为字符串中的每个项目提供一个可变值?
- python - 如何在 PC 使用 python 关闭之前运行一个函数?
- asp.net-core - 如何将具有 IdentityServer 依赖项的 webapp 放入 Docker?
- user-interface - 以可视方式浏览 GCS 或 S3 存储桶(缩略图)
- powershell - 拒绝启动进程访问的 PowerShell 调用命令
- angular - 在返回值之前等待循环执行