我已经创建了两个表user和contact。用户是父表,联系人是子表。我将userId称为联系表中的外键。我已经通过以下查询。

CREATE TABLE user(
  userId INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NULL,
  phone VARCHAR(50) NULL,
  email VARCHAR(50) NULL,
  address VARCHAR(150) NULL,
  loginName VARCHAR(45) NOT NULL,
  password VARCHAR(50) NOT NULL,
  role INT(1) NOT NULL DEFAULT 2,
  loginStatus INT(1) NOT NULL DEFAULT 1,
  PRIMARY KEY(userId),
);

=====第二张表==========
CREATE TABLE contact(
  contactId INT NOT NULL AUTO_INCREMENT,
  userId INT NULL,
  name VARCHAR(50) NULL,
  phone VARCHAR(50) NULL,
  email VARCHAR(50) NULL,
  address VARCHAR(150) NULL,
  remark VARCHAR(150) NULL,
  PRIMARY KEY(contactId),
  CONSTRAINT fk_con_userId FOREIGN KEY (userId)
    REFERENCES user (userId)
  ON DELETE CASCADE ON UPDATE NO ACTION
);

为了查看列信息,我在H2数据库中编写了以下查询。

显示联系人的列; database - 如何在H2数据库中查看我的表列是否为外键-LMLPHP

但是我的表没有显示userId作为外键。

最佳答案

是的,您使用的show命令不显示外键。尽管如此,您创建的外键还是

要检查外键是否存在,可以查询INFORMATION_SCHEMA,如下所示:

select * from information_schema.constraints
  where table_name = 'CONTACT'
    and column_list = 'USERID';

此查询显示一行,可为您提供FK的详细信息。列SQL具有值:

关于database - 如何在H2数据库中查看我的表列是否为外键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49970315/

10-11 22:49
查看更多