【问题标题】:Specifying choices for SQL table data types - sqlite指定 SQL 表数据类型的选择 - sqlite
【发布时间】:2018-01-14 15:38:49
【问题描述】:

我正在建立一个表格,其中一个要求是列应该是“性别”,并且它接受的数据应该是“M”或“F”。如何指定此条件?

CREATE TABLE bears (
  id INTEGER PRIMARY KEY,
  name TEXT,
  age INTEGER,
  gender ("M" or "F")
)

【问题讨论】:

  • 我知道在 SQL 中有一些方法可以执行,但为什么不使用调用 SQL 的语言来强制执行此条件呢?如果您想更改约束条件,这通常会给您更大的灵活性(idk 可能会添加新发现的性别)

标签: sql sqlite sql-types


【解决方案1】:

一个简单的方法是check 约束:

create table t as (
    . . .,
    gender char(1) not null,
    constraint chk_t_gender check (gender in ('M', 'F'))
);

请注意,SQLite 会忽略字符类型上的 (1),但 check 约束会强制执行长度。这样写,代码遵循标准的SQL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 2016-02-05
    相关资源
    最近更新 更多