0

我正在尝试创建一个新的人行横道/交叉路口表(synonyms):

  1. 由一对 ID 组成(都是不同表的外键);和
  2. 具有唯一性约束,使得两个 ID(作为一对)在表上必须是唯一的

这是我的 SQL:

CREATE TABLE synonyms (
    base_word_id INTEGER NOT NULL,
    synonym_id INTEGER NOT NULL,

    CONSTRAINT fk_words_based_id FOREIGN KEY (base_word_id) REFERENCES words(word_id)
);

words表包含(您猜对了)、单词和关于这些单词的元数据。该synonyms表是一个多对多表,保存单词及其同义词的关系,即其他词。是单词的synonym_idID,它是由 表示的单词的同义词base_word_id

针对 H2 DB,我收到以下错误:

Error: Table "WORDS" not found; SQL statement:
CREATE TABLE synonyms(
base_word_id INTEGER NOT NULL,
synonym_id INTEGER NOT NULL,

CONSTRAINT fk_words_based_id FOREIGN KEY (base_word_id) REFERENCES words(word_id)
) [42102-173]
SQLState:  42S02
ErrorCode: 42102

在我的数据库中,WORDS不是表,而是words。所以看起来H2可能是大写wordsWORDS

4

1 回答 1

0

看起来您像这样创建了“单词”表:

create table "words"(...)

如果你这样做,那么表名是区分大小写的,你必须总是引用它。为避免这种情况,请创建不带双引号的表:

create table words(...)
于 2013-10-24T13:56:25.410 回答