寫入數據庫 df2.to_sql(name='匯總', con=conn, if_exists='append', index_label='ID')這個代碼報sqlite3.IntegrityError: UNIQUE constraint failed: 匯總.id修改插入数据时生成唯一的id值。
时间: 2024-01-11 15:02:22 浏览: 97
capacity_DF2.rar_DF MIMO matlab_DF容量_capacity_mimo_双跳模型 MIMO
5星 · 资源好评率100%
要在插入数据时生成唯一的id值,你可以使用SQLite数据库的自增主键功能。首先,确保你的`匯總`表的`id`列设置为自增主键,这样它将自动分配唯一的id值。
以下是修改后的代码示例:
```python
import sqlite3
# 连接到数据库
conn = sqlite3.connect('your_database.db')
# 创建匯總表(如果不存在)
conn.execute('''CREATE TABLE IF NOT EXISTS 匯總
(id INTEGER PRIMARY KEY AUTOINCREMENT,
column1 TEXT,
column2 TEXT,
...)''')
# 生成要插入的数据
data = [
('value1', 'value2', ...),
('value3', 'value4', ...),
...
]
# 插入数据,并自动生成唯一的id值
conn.executemany('''INSERT INTO 匯總 (column1, column2, ...)
VALUES (?, ?, ...)''', data)
# 提交事务并关闭数据库连接
conn.commit()
conn.close()
```
在这个示例中,我们使用`AUTOINCREMENT`关键字将`id`列设置为自增主键。然后,我们生成要插入的数据,并使用`executemany()`方法将数据批量插入到数据库中。每次插入时,SQLite将为`id`列自动生成唯一的值。
请注意,你需要根据实际情况修改代码中的表名、列名和数据。确保在执行插入操作之前,已经建立了正确的表结构。
希望这个修改满足了你的需求。如果还有其他问题,请随时提问。
阅读全文