Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 表中的检查是否可以检查另一个表的列中是否存在属性?_Mysql_Sql - Fatal编程技术网

Mysql 表中的检查是否可以检查另一个表的列中是否存在属性?

Mysql 表中的检查是否可以检查另一个表的列中是否存在属性?,mysql,sql,Mysql,Sql,我有两张桌子,consulta和Specialidade: CREATE TABLE IF NOT EXISTS `sbd`.`especialidade` ( `especialidade` VARCHAR(50) NOT NULL, `name` VARCHAR(50) NOT NULL, PRIMARY KEY (`especialidade`)) CREATE TABLE IF NOT EXISTS `sbd`.`consulta` ( `Especialidade_e

我有两张桌子,consulta和Specialidade:

CREATE TABLE IF NOT EXISTS `sbd`.`especialidade` (
  `especialidade` VARCHAR(50) NOT NULL,
  `name` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`especialidade`))

CREATE TABLE IF NOT EXISTS `sbd`.`consulta` (
  `Especialidade_especialidade` VARCHAR(50) NOT NULL,
   CONSTRAINT `fk_Consulta_Especialidade1`
   FOREIGN KEY (`Especialidade_especialidade`)
   REFERENCES `sbd`.`especialidade` (`especialidade`),

  CHECK(`Especialidade_especialidade` in (`sbd`.`especialidade` 
(`especialidade`)))
)
但这不起作用。 我需要知道table consulta的属性
specialidade\u specialidade
是否在table specialidade的
specialidade
列中。

是否需要外键关系:

CREATE TABLE IF NOT EXISTS sbd.consulta (
    Especialidade_especialidade VARCHAR(50) NOT NULL,
    FOREIGN KEY(Especialidade_especialidade) REFERENCES sbd.especialidade(especialidade))
您可以忽略表
specialidade
中的列
specialidade
,因为该表已将
specialidade
定义为其主键,从而使其成为引用的默认列


请注意,将表和列命名为相同可能会导致混淆。更喜欢(在所有表中)简单地命名主键列
id

@AdathSkyderson“不起作用”是什么意思。它必须工作。我只需要知道specialidade_specialidade是否是表specialidadeer的specialidade错误代码:3814。检查约束“consulta_chk_1”的表达式包含不允许的函数:
sbd
specialidade
。假设我在表specialidade中有“B”和“a”。如何在签入表consulta中获得Speciality“B”的名称?如check(从
sbd
Specialidade
中选择
name
),其中
Specialidade
=
B
)=“SOFIA”