INSERT语句中,如果受约束列没有指定值,则插入默认值。该值可以是硬编码的文字,也可以是在创建行时计算的表达式。

细节

语法

你只能针对各个列设置默认值约束。

你也可以通过ALTER COLUMN在已存在的表中添加默认值约束。

图片

Parameter Description
table_name 表名
column_name 添加约束的列名
column_type 受约束列的数据类型
default_value 默认插入的值,数据类型需要和 column_type一致
column_constraints 要应用于此列的任何其他列级约束。
column_def 表中任何其他列的定义。
table_constraints 要应用的任何表级约束。

用法示例

> CREATE TABLE inventories (
    product_id        INT,
    warehouse_id      INT,
    quantity_on_hand  INT DEFAULT 100,
    PRIMARY KEY (product_id, warehouse_id)
  );

> INSERT INTO inventories (product_id, warehouse_id) VALUES (1,20);

> INSERT INTO inventories (product_id, warehouse_id, quantity_on_hand) VALUES (2,30, NULL);

> SELECT * FROM inventories;
+------------+--------------+------------------+
| product_id | warehouse_id | quantity_on_hand |
+------------+--------------+------------------+
|          1 |           20 |              100 |
|          2 |           30 | NULL             |
+------------+--------------+------------------+

如果未指定默认值约束且未给出显式值,则会为该列指定值NULL

See Also