price DECIMAL (7,2) constraint C1 check(price>0 )为什么报错
时间: 2023-06-11 08:09:26 浏览: 75
在创建表时添加约束条件时,应该将约束条件放在列定义之后,例如:
```
CREATE TABLE table_name (
column1 data_type,
column2 data_type,
...
columnN data_type,
CONSTRAINT constraint_name CHECK (column_name > 0)
);
```
因此,你的语句应该如下所示:
```
CREATE TABLE table_name (
...
price DECIMAL (7,2),
CONSTRAINT C1 CHECK(price > 0)
);
```
请注意,约束条件名称“C1”是可选的,你可以根据自己的需要进行命名。
相关问题
price DECIMAL (7,2) constraint C1 check(price>0 and price <=10000)为什么报错
可能是因为你在定义 DECIMAL 类型时指定了 7 个数字位和 2 个小数位,而在 constraint 中使用的是 10000 这个值,它超出了 DECIMAL 类型的范围。DECIMAL 类型最大值的整数部分为 10^7-1,小数部分为 0.99。
你可以将 DECIMAL 类型的数字位数增加,或者修改 constraint 中的值以使其不超过 DECIMAL 类型的范围。例如,你可以将 DECIMAL 类型的数字位数增加到 8 或 9,或者将 constraint 中的值修改为 9999。
阅读全文