sql建表时某一列的默认值为前面指定列的值
时间: 2023-05-22 19:05:07 浏览: 75
可以使用以下语句来实现这个需求:
```
CREATE TABLE myTable (
column1 INT,
column2 INT DEFAULT NULL,
column3 VARCHAR(100) DEFAULT '',
column4 DATETIME DEFAULT CURRENT_TIMESTAMP,
column5 DATETIME DEFAULT '2000-01-01 00:00:00',
column6 VARCHAR(100) DEFAULT CONCAT(column3, 'suffix')
);
```
其中的 column6 会默认使用 column3 的值作为前缀,并在后面添加 'suffix'。
相关问题
sql建表时某一列的默认值为前面一列的值
可以使用trigger实现,当插入新数据时,自动将前一列的值设为默认值。以下是一个示例代码:
CREATE TABLE `test_table`(
`id` INT PRIMARY KEY AUTO_INCREMENT,
`col1` INT NOT NULL,
`col2` INT DEFAULT NULL,
-- col2的默认值为col1的值
-- 使用trigger设置
-- 当插入新数据时,自动将col1的值设为col2的默认值
CONSTRAINT `col2_default`
BEFORE INSERT ON `test_table`
FOR EACH ROW
SET NEW.`col2` = IFNULL((SELECT `col1` FROM `test_table` ORDER BY `id` DESC LIMIT 1), NULL)
);
当插入新数据时,自动将前一列的值设为默认值。
mysq语句建表添加默认值
你可以使用以下的 SQL 语句来建表并添加默认值:
```
CREATE TABLE table_name (
column1 datatype DEFAULT default_value,
column2 datatype DEFAULT default_value,
column3 datatype DEFAULT default_value,
...
);
```
其中,`table_name` 是你要创建的表的名称,`column1`、`column2`、`column3` 等是表中的列名,`datatype` 是该列的数据类型,`default_value` 是该列的默认值。
例如,创建一个名为 `users` 的表,其中包含 `id`、`name` 和 `email` 三个列,其中 `id` 列自增、`name` 列的默认值为 `"John Doe"`,`email` 列的默认值为 `NULL`,你可以使用以下 SQL 语句:
```
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) DEFAULT 'John Doe',
email VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (id)
);
```