【问题标题】:Oracle create table with foreign key error - Invalid IdentifierOracle 创建带有外键错误的表 - 标识符无效
【发布时间】:2013-09-05 06:47:28
【问题描述】:

当我尝试添加此表时,我收到一个错误提示标识符无效。它已经困扰我太久了,所以我想我会问。

CREATE TABLE HORSE 
(  
horse_id numeric PRIMARY KEY,
horse_name character(30) not null,
horse_gender character(1) not null,
horse_height decimal not null,
horse_image character(40), 
CONSTRAINT horse_breed FOREIGN KEY (breed_id) REFERENCES breed(breed_id) 
);

错误信息是;

Error at Command Line:34 Column:37
Error report:
SQL Error: ORA-00904: "BREED_ID": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

感谢和抱歉问这个可能是一个非常愚蠢的问题。

【问题讨论】:

  • 另外,错误在于 CONSTRAINT horse_breed FOREIGN KEY (breed_id) REFERENCES Breed(breed_id) 行
  • 请发布完整的错误信息(编辑您的问题

标签: sql database oracle foreign-keys


【解决方案1】:

HORSE 表中需要 breed_id

CREATE TABLE HORSE 
(  
horse_id numeric PRIMARY KEY,
horse_name character(30) not null,
horse_gender character(1) not null,
horse_height decimal not null,
horse_image character(40), 
breed_id numeric null
CONSTRAINT horse_breed FOREIGN KEY (breed_id) REFERENCES breed(breed_id) 
);

【讨论】:

  • 你放在那里的breed_id上的空标签有什么意义?
  • null 表示您不必用数据填充列,换句话说它可以为空,而其他单词 horse 不应该有品种 ;)
  • 这不就等同于“不”拥有not null吗?
  • @pjmil116 是的,我可以这么说:)
猜你喜欢
  • 2017-09-22
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多