使用带有以'A'开头的主键的SQL创建表

时间:2019-01-14 17:20:45

标签: sql oracle check-constraints

我正在尝试使用SQL创建表。我希望我的主键 -ArCode 以字母'A'开头。我使用了 check like 的组合,但无济于事。

这是我的查询:

Create table Article(
ArCode Char(5) Check (ArCode LIKE 'A%') Primary Key,
ArName Varchar2(30) Not Null,
Rate Number(8,2),
Quantity Number(4) Check (Quantity >=0) Default 0,
Class Char(1) Check (Class In ('A','B','C'))
);

执行查询时,出现右括号缺失错误。我无法弄清楚。

1 个答案:

答案 0 :(得分:2)

您的错误与数量列的定义有关。对此进行注释,或仅对其进行修复以使默认值出现在检查约束之前,以使create table语句可以正常运行:

Create table Article(
  ArCode Char(5) Check (ArCode LIKE 'A%') Primary Key,
  ArName Varchar2(30) Not Null,
  Rate Number(8,2),
--  Quantity Number(4) Check (Quantity >=0) Default 0,
  Quantity Number(4)  Default 0 Check (Quantity >=0),
  Class Char(1) Check (Class In ('A','B','C'))
);