SQLite 如何在SQLite中添加默认值
在本文中,我们将介绍如何在SQLite中添加默认值。SQLite是一种轻量级的关系型数据库管理系统,具有简单易用、高效灵活的特点,在移动应用和嵌入式系统中广泛应用。
阅读更多:SQLite 教程
什么是默认值?
默认值是在插入新行时,将自动为列分配的预定义值。在SQLite中,可以为列定义默认值,以确保在插入新行时,所有未提供值的列都有一个合适的默认值。
添加默认值的方法
在SQLite中,有多种方法可以为列设置默认值。下面是常用的几种方法:
1. 使用DEFAULT关键字
可以使用DEFAULT关键字来为列设置默认值。在创建表时,在列的定义中使用DEFAULT关键字,后跟所需的默认值。例如,创建一个名为“students”的表,并为“age”列设置默认值为18:
CREATE TABLE students (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER DEFAULT 18
);
上述代码中,如果在插入新行时不提供“age”列的值,那么该列将自动使用默认值18。
2. 在插入语句中指定默认值
另一种设置默认值的方法是在插入语句中明确指定默认值。可以通过在INSERT语句的VALUES子句中指定默认值,来为列设置默认值。例如,插入一条新记录到“students”表中,并将“age”列设置为默认值18:
INSERT INTO students (name, age) VALUES ('John', DEFAULT);
上述代码中,如果没有提供“age”列的值,将自动使用默认值18。
3. 使用触发器
还可以通过创建触发器来为列设置默认值。触发器是一种在特定情况下自动执行的SQLite代码片段。可以在INSERT语句触发之前或之后执行触发器,从而为列设置默认值。例如,创建一个名为“students_default_age”的触发器,并在插入新行时将“age”列设置为默认值18:
CREATE TRIGGER students_default_age_trigger BEFORE INSERT ON students
BEGIN
UPDATE students SET age = 18 WHERE age IS NULL;
END;
上述代码中,如果在插入新行时没有提供“age”列的值,触发器将使用默认值18进行更新。
示例演示
下面是一个示例,展示了如何通过设置默认值,在SQLite中插入新行时设置列的默认值。
-- 创建students表并为age列设置默认值为18
CREATE TABLE students (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER DEFAULT 18
);
-- 插入一条新记录,age列使用默认值18
INSERT INTO students (name) VALUES ('John');
-- 插入一条新记录,明确指定age列的值为20
INSERT INTO students (name, age) VALUES ('Mary', 20);
-- 显示students表的内容
SELECT * FROM students;
执行上述代码后,将得到以下结果:
| id | name | age |
|---|---|---|
| 1 | John | 18 |
| 2 | Mary | 20 |
总结
在本文中,我们介绍了如何在SQLite中添加默认值。通过使用DEFAULT关键字、在插入语句中明确指定默认值或创建触发器,可以为列设置默认值。此外,我们还提供了一个示例,演示了在SQLite中如何插入新行并设置默认值的过程。使用默认值可以确保在插入新行时,所有未提供值的列都有一个合适的默认值。
极客教程