SQLite外键(Foreign Key) 的使用例子
来源:互联网 发布:Unity3d添加GameObject 编辑:程序博客网 时间:2024/05/29 17:48
从SQLite 3.6.19 开始支持 外键约束。
sqlite> PRAGMA foreign_keys;0sqlite> PRAGMA foreign_keys = ON;sqlite> PRAGMA foreign_keys;1sqlite> PRAGMA foreign_keys = OFF;sqlite> PRAGMA foreign_keys;0
SQLite foreign keys FAQ: Can you show me how to define foreign keys in a SQLite database table design?
The SQLite database does support foreign keys, and its foreign key syntax is similar to other databases. Here’s a quick SQLite foreign key example.
A SQLite foreign key example
To show how this works, first define two database tables that don’t have any foreign keys:
---- salespeople--CREATE TABLE salespeople ( id INTEGER PRIMARY KEY, first_name TEXT NOT NULL, last_name TEXT NOT NULL, commission_rate REAL NOT NULL);---- customers--CREATE TABLE customers ( id INTEGER PRIMARY KEY, company_name TEXT NOT NULL, street_address TEXT NOT NULL, city TEXT NOT NULL, state TEXT NOT NULL, zip TEXT NOT NULL);
Next, define a SQLite table that has two foreign keys, one that relates a new orders
table back to the customers
table, and a second foreign key that relates theorders
table back to the salespeople
table:
---- orders--CREATE TABLE orders ( id INTEGER PRIMARY KEY, customer_id INTEGER, salesperson_id INTEGER, FOREIGN KEY(customer_id) REFERENCES customers(id), FOREIGN KEY(salesperson_id) REFERENCES salespeople(id));
As you can see, the SQLite foreign key syntax is very similar to other databases.
Sample SQLite foreign key data
If you'd like to test this SQLite foreign key example in your own SQLite database, here's some sample data for each of these tables:
---- salespeople sample data--INSERT INTO salespeople VALUES (null, 'Fred', 'Flinstone', 10.0);INSERT INTO salespeople VALUES (null, 'Barney', 'Rubble', 10.0);---- customers sample data--INSERT INTO customers VALUES (null, 'ACME, INC.', '101 Main Street', 'Anchorage', 'AK', '99501');INSERT INTO customers VALUES (null, 'FOOBAR', '200 Foo Way', 'Louisville', 'KY', '40207');---- orders sample data--INSERT INTO orders VALUES (null, 1, 1);INSERT INTO orders VALUES (null, 2, 2);
I just tested these SQLite foreign key examples on my system, using SQLite version 3.4.0, and they all work fine.
FROM:
SQLite foreign key examples
http://alvinalexander.com/android/sqlite-foreign-keys-example
SQLite从什么版本开始支持外键(Foreign Key)
http://blog.csdn.net/forlong401/article/details/43760691- SQLite外键(Foreign Key) 的使用例子
- SQLite外键(Foreign Key)支持
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- android 界面显示ProgressLayout
- Android跨进程访问资源
- 344. Reverse String
- iOS 关于推送点击推送通知的处理
- 真的会读书吗?
- SQLite外键(Foreign Key) 的使用例子
- 两个变量交换数值,不引入第三变量
- 我的第四个C语言:计算圆柱体的表面积和体积。
- LeetCode笔记:191. Number of 1 Bits
- angular 1.5.+ 语法理解(1)
- 论软件开发工程师的自我修养
- :read-only选择器
- 顺序表应用4-2:元素位置互换之逆置算法(数据改进)
- 关于 supervisor 的 autorestart 为 unexpected