gpt4 book ai didi

sql - MySQL:我可以仅通过数据库设计将一个表中的列值约束为另一个表中列中的值吗?

转载 作者:行者123 更新时间:2023-11-29 05:45:49 24 4
gpt4 key购买 nike

例子:

表“persons”,列“surname”只能包含预定义的值

表“names”,列“surnames”,其中包含为此目的可接受的姓氏集合。

我能否通过设计实现这一点(即不涉及任何验证代码)?在 MyISAM 表上?不?在 InnoDB 上?

谢谢。

最佳答案

您要的是外键约束。 You'd need to use InnoDB - quote :

For storage engines other than InnoDB, MySQL Server parses the FOREIGN KEY syntax in CREATE TABLE statements, but does not use or store it.

PERSONS 的 CREATE TABLE 语句中添加外键约束:

FOREIGN KEY (surname) REFERENCES names(surnames)

如果表已经存在,则使用 ALTER TABLE 语句:

ALTER TABLE persons 
ADD CONSTRAINT FOREIGN KEY (surname) REFERENCES names(surname)

请注意,如果您使用 ALTER TABLE 语句,PERSONS 表中的数据只能包含存在于 NAMES.surname< 中的姓氏值 表 - 数据固定后才能应用。

关于sql - MySQL:我可以仅通过数据库设计将一个表中的列值约束为另一个表中列中的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com