当前位置: 首页 > 面试题库 >

关键字CONSTRAINT在此CREATE TABLE语句中起什么作用

邓昀
2023-03-14
问题内容

我正在学习如何将sqlite3与python结合使用。我要遵循的教科书中的示例是一个数据库,其中每个“国家/地区”记录都有一个“地区”,“国家/地区”和“人口”。

这本书说:

以下代码段使用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语句就可以确保每个国家/地区在该地区都有唯一的名称。


问题答案:

Country_key只是给约束起一个名字。如果您不这样做,将为您生成名称。当表上有多个约束并且您需要删除其中一个约束时,这很有用。

作为删除约束的示例:

ALTER TABLE PopByCountry DROP CONSTRAINT Country_Key


 类似资料:
  • 我对“作为”关键词的用法感到困惑。 它是强制转换运算符还是别名运算符? 我在互联网上遇到了以下代码,看起来像一个演职人员: 这是什么意思?

  • 具体来说,我正在尝试这个代码: 但它给出了错误 无法访问静态方法main中的非静态字段 所以我把的声明改为: 它起作用了。把这个关键字放在声明之前意味着什么?它到底会对这个对象做什么和/或限制什么?

  • 本文向大家介绍此关键字在Java中有什么用?,包括了此关键字在Java中有什么用?的使用技巧和注意事项,需要的朋友参考一下 Java中的“ this”关键字是对当前类对象的引用。使用它,您可以引用类的字段,方法或构造函数。 使用“ this”关键字引用字段 如前 ,您可以使用“ this” 关键字从实例方法或构造函数中引用类的实例字段/变量。  即如果一个方法的名称相同的实例变量一个局部变量的话,

  • 问题内容: 在调试pycharm中的代码时,按Ctrl + C时,我的python try / except循环似乎不会触发键盘中断。我的代码如下所示: 编辑: 我的精简代码工作似乎出现了一些问题,并且没有产生相同的错误。完整的代码可以在这里查看。我还重新整理了代码(上面的代码),并产生了相同的错误。 问题答案: 从屏幕截图中可以看出,您正在IDE中运行此代码。关于IDE的问题是,它们与正常运行并

  • 问题内容: 当我回答另一个问题时我遇到了一个带有顶层语句的Node.js模块。例如: 这可以正常工作并且没有错误并可以打印: 在标准输出中,但不是“ ”- 实际停止执行。 但是根据ECMAScript 5.1中 的语句规范, 语义学 如果ECMAScript程序 包含不在内的return语句,则在语法上_被视为 _不正确 。 在上面显示的程序中没有任何功能。 那为什么不扔呢? 问题答案: TL;

  • 问题内容: 我正在网上关注Java教程,尝试学习该语言,并且它在使用数组的两种语义之间反弹。 和: 该教程从未真正提到过为什么它会在两者之间来回切换,所以我对该主题进行了一些搜索。我目前的理解是,操作员正在创建“ longs数组”类型的对象。我 不 明白的是为什么我要那个,那有什么后果? 是否存在某些特定于“数组”的方法,除非它是“数组对象”,否则这些方法对数组不起作用? 有什么我 不能 用普通数