SN表WEIGHT创建时要求字段大于0
时间: 2024-09-21 07:03:48 浏览: 46
在创建`SN`表的`WEIGHT`字段时,如果你想设置它默认值为正数并且不允许存储零或负数,你可以使用SQL的`CHECK`约束来实现。这个约束会在试图插入无效值时阻止操作。下面是使用不同数据库系统创建这种类型的字段的例子:
1. **MySQL**:
```sql
CREATE TABLE SN (
ID INT PRIMARY KEY,
WEIGHT DECIMAL(10, 2) CHECK (WEIGHT > 0)
);
```
2. **Oracle**:
```sql
CREATE TABLE SN (
ID NUMBER PRIMARY KEY,
WEIGHT NUMBER(10, 2) CONSTRAINT CK_SNOWEIGHT CHECK (WEIGHT > 0)
);
```
3. **SQL Server**:
```sql
CREATE TABLE SN (
ID INT PRIMARY KEY,
WEIGHT FLOAT NOT NULL CHECK (WEIGHT > 0)
);
```
4. **PostgreSQL**:
```sql
CREATE TABLE SN (
ID SERIAL PRIMARY KEY,
WEIGHT NUMERIC(10, 2) NOT NULL DEFAULT 0 CHECK (WEIGHT > 0)
);
```
注意:在PostgreSQL中,`DECIMAL`或`NUMERIC`默认不允许0,所以这里设置了默认值为0。
如果已经有数据存在于表中,而你想更新`WEIGHT`使其大于0,可以使用`UPDATE`语句结合`CASE`表达式或其他类似功能来完成。
阅读全文