在数据库中设置默认值是确保数据完整性和一致性的重要手段,以下是一些常见数据库系统中设置默认值的方法。

MySQL
在MySQL中,您可以在创建表时为列指定默认值,或者在修改列定义时添加默认值。
创建表时设置默认值
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL DEFAULT 'Unknown',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
修改列定义添加默认值
ALTER TABLE example MODIFY COLUMN name VARCHAR(100) NOT NULL DEFAULT 'Unknown';
PostgreSQL
在PostgreSQL中,设置默认值的方式与MySQL类似。
创建表时设置默认值
CREATE TABLE example (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL DEFAULT 'Unknown',
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
修改列定义添加默认值
ALTER TABLE example ALTER COLUMN name SET DEFAULT 'Unknown';
SQL Server
在SQL Server中,您可以在创建表时指定默认值,或者在修改列定义时添加默认值。
创建表时设置默认值
CREATE TABLE example (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL DEFAULT 'Unknown',
created_at DATETIME DEFAULT GETDATE()
);
修改列定义添加默认值
ALTER TABLE example ALTER COLUMN name SET DEFAULT 'Unknown';
Oracle
在Oracle中,设置默认值的方式与SQL Server类似。

创建表时设置默认值
CREATE TABLE example (
id NUMBER PRIMARY KEY,
name VARCHAR2(100) NOT NULL DEFAULT 'Unknown',
created_at TIMESTAMP DEFAULT SYSTIMESTAMP
);
修改列定义添加默认值
ALTER TABLE example MODIFY name DEFAULT 'Unknown';
SQLite
在SQLite中,设置默认值的方式相对简单。
创建表时设置默认值
CREATE TABLE example (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL DEFAULT 'Unknown',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
默认值函数
以下是一些常用的默认值函数:
| 数据库系统 | 函数/表达式 |
|---|---|
| MySQL | DEFAULT CURRENT_TIMESTAMP |
| PostgreSQL | DEFAULT CURRENT_TIMESTAMP |
| SQL Server | DEFAULT GETDATE() |
| Oracle | DEFAULT SYSTIMESTAMP |
| SQLite | DEFAULT CURRENT_TIMESTAMP |
表格示例
以下是一个示例表格,展示了不同数据库系统中设置默认值的方法:
| 数据库系统 | 创建表时设置默认值示例 | 修改列定义添加默认值示例 |
|---|---|---|
| MySQL | CREATE TABLE example (name VARCHAR(100) NOT NULL DEFAULT 'Unknown'); |
ALTER TABLE example MODIFY name VARCHAR(100) NOT NULL DEFAULT 'Unknown'; |
| PostgreSQL | CREATE TABLE example (name VARCHAR(100) NOT NULL DEFAULT 'Unknown'); |
ALTER TABLE example ALTER COLUMN name SET DEFAULT 'Unknown'; |
| SQL Server | CREATE TABLE example (name VARCHAR(100) NOT NULL DEFAULT 'Unknown'); |
ALTER TABLE example ALTER COLUMN name SET DEFAULT 'Unknown'; |
| Oracle | CREATE TABLE example (name VARCHAR2(100) NOT NULL DEFAULT 'Unknown'); |
ALTER TABLE example MODIFY name DEFAULT 'Unknown'; |
| SQLite | CREATE TABLE example (name TEXT NOT NULL DEFAULT 'Unknown'); |
无需修改,默认值在创建表时已设置 |
FAQs
Q1:为什么需要设置默认值?

A1:设置默认值可以确保新插入的记录在缺少相应值时有一个默认值,从而保持数据的完整性和一致性,默认值还可以简化查询和数据处理过程。
Q2:默认值是否可以更新?
A2:是的,默认值可以被更新,一旦为列设置了默认值,您可以通过修改列定义来更改默认值,更新默认值不会影响已插入的记录,只会影响未来插入的记录。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/212456.html