MySQL中的单行表

时间:2018-04-06 03:30:53

标签: mysql

我想要一张只能有一条记录的表格。我打算将它用于配置目的。虽然我知道这不是SQL数据库的用例,更适合KV商店。但我想将此与现有交易结合使用。换句话说,我希望有一个KV存储,其中每个键映射到一行的表。是否可以对MySQL或其他SQL数据库中的表强制执行单行限制/约束?

2 个答案:

答案 0 :(得分:1)

您可以使用枚举约束和唯一constaint的组合,以确保表中只有一行

CREATE TABLE example_tbl (
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    -- this ensures unique_value column only accepts 'some_value'
    unique_value ENUM('some_value') NOT NULL,
    -- this ensures unique_value column is unique
    UNIQUE (unique_value)
 );

sql fiddle

答案 1 :(得分:0)

在向表中插入记录时,您需要有条件来检查是否存在值。通常这是从应用程序端完成的。如果存在记录,则可以使用插入或更新条件。

Query1= SELECT * FROM Table1 WHERE Column1='SomeValue'

如果Query1返回一个值,则对表进行更新,否则执行insert。