首页 > 解决方案 > 使用以“A”开头的主键的 SQL 创建表

问题描述

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

这是我的查询:

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'))
);

当我执行查询时,我得到一个缺少右括号的错误。我无法弄清楚。

标签: sqloraclecheck-constraints

解决方案


您的错误在于 Quantity 列的定义。将其注释掉,或者只是修复它以使默认值出现在检查约束之前允许 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'))
);

推荐阅读