python sqlite3 增加新列,新列为主键
时间: 2023-06-28 11:13:46 浏览: 159
用python sqlite3给已经有的表增加字段
你可以使用 ALTER TABLE 语句来添加新列,然后使用 PRIMARY KEY 约束将其设置为主键。以下是一个示例:
```python
import sqlite3
# 连接到数据库
conn = sqlite3.connect('example.db')
# 获取游标
cursor = conn.cursor()
# 添加新列
cursor.execute('ALTER TABLE my_table ADD COLUMN id INTEGER')
# 将新列设置为主键
cursor.execute('PRAGMA table_info(my_table)')
columns = cursor.fetchall()
for column in columns:
if column[1] == 'id':
cursor.execute('CREATE UNIQUE INDEX idx_id ON my_table(id)')
break
# 提交更改
conn.commit()
# 关闭连接
conn.close()
```
在这个示例中,我们首先使用 ALTER TABLE 语句添加了一个名为 "id" 的整数列,然后使用 PRAGMA table_info() 函数检索表的列信息。我们遍历所有列,找到我们添加的新列,并使用 CREATE UNIQUE INDEX 语句将其设置为主键。最后,我们提交更改并关闭连接。
请注意,如果表中已经存在数据,那么添加主键可能会失败,因为存在重复值。在这种情况下,你需要先删除重复值或者选择一个不冲突的主键列。
阅读全文