我正在学习如何在python中使用sqlite3。我正在阅读的教科书中的示例是一个数据库,其中每个国家/地区记录都有一个Region,Country和Population。
这本书说:
以下代码段使用CONSTRAINT关键字指定 表中没有两个条目 创建将具有相同的值 对于地区和国家:
>>> cur.execute('''
CREATE TABLE PopByCountry(
Region TEXT NOT NULL,
Country TEXT NOT NULL,
Population INTEGER NOT NULL,
CONSTRAINT Country_Key PRIMARY KEY (Region, Country))
''')
请你解释CONSTRAINT Country_Key
在这里的作用。如果我删除它,单独使用PRIMARY KEY语句似乎可以确保每个国家/地区都有该区域的唯一名称。
答案 0 :(得分:12)
Country_key只是为约束命名。如果您不这样做,将为您生成名称。当表上存在多个约束并且您需要删除其中一个约束时,这非常有用。
作为删除约束的示例:
ALTER TABLE PopByCountry DROP CONSTRAINT Country_Key
答案 1 :(得分:1)
如果从语句中省略CONSTRAINT Contry_Key,SQL Server将为您生成PRIMARY KEY约束的名称(PRIMARY KEY是一种约束)。
通过在查询中专门设置CONSTRAINT,您实际上是为主键约束指定了一个名称。