如何在H2数据库中查看我的表列是否为外键

时间:2018-04-22 20:14:03

标签: database h2

我创建了两个表用户和联系人。用户是父级,联系人是子级表。我将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数据库中编写以下查询。

显示来自联系人的列; I assume the red area should have shown me that the userId is foreign key

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

1 个答案:

答案 0 :(得分:3)

是的,您使用的$ date -d 'last month' Fri Mar 23 14:16:13 CDT 2018 $ date -d 'last month' Fri Mar 23 14:16:15 CDT 2018 $ date -d 'last month' '+%b' Mar 命令不显示外键。不过,您创建的外键

要检查外键,您可以在show中查询:

INFORMATION_SCHEMA

此查询显示一行,为您提供FK的详细信息。列select * from information_schema.constraints where table_name = 'CONTACT' and column_list = 'USERID'; 的值为:

  

ALTER TABLE PUBLIC.CONTACT ADD CONSTRAINT PUBLIC.FK_CON_USERID FOREIGN KEY(USERID)INDEX PUBLIC.FK_CON_USERID_INDEX_6 REFERENCES PUBLIC.USER(USERID)ON DELETE CASCADE NOCHECK

相关问题