qt 写一个数据库的外键约束例子
时间: 2023-07-13 09:38:38 浏览: 128
下面是一个使用 Qt 操作数据库并添加外键约束的简单示例:
首先,在 Qt 项目中添加 QtSql 库的依赖:
```c++
QT += sql
```
然后,连接数据库:
```c++
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("example.db");
if (!db.open()) {
qDebug() << "Failed to open database";
return;
}
```
创建主表和从表:
```c++
QSqlQuery query;
query.exec("CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT)");
query.exec("CREATE TABLE job (id INTEGER PRIMARY KEY, title TEXT, person_id INTEGER, FOREIGN KEY (person_id) REFERENCES person(id))");
```
在从表中添加外键约束,将 person_id 列设为外键,并将其引用到 person 表中的 id 列上。
接下来,我们可以执行插入操作:
```c++
query.exec("INSERT INTO person (name) VALUES ('John Doe')");
int personId = query.lastInsertId().toInt();
query.prepare("INSERT INTO job (title, person_id) VALUES (:title, :person_id)");
query.bindValue(":title", "Software engineer");
query.bindValue(":person_id", personId);
query.exec();
```
查询数据:
```c++
query.exec("SELECT * FROM job");
while (query.next()) {
QString title = query.value("title").toString();
QString name = query.value("name").toString();
qDebug() << title << " works for " << name;
}
```
以上就是一个简单的 Qt 操作数据库并添加外键约束的示例。
阅读全文