【发布时间】:2016-01-21 06:38:49
【问题描述】:
我觉得这应该很容易......
我有一张这样的桌子:
CREATE TABLE table_name (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
UNIQUE (name COLLATE NOCASE)
)
没有两个名称相同,不区分大小写。现在我有用户添加名称,它会这样做:
INSERT INTO table_name (name) VALUES ("my name");
我需要获取行的 id,这很容易使用 PHP PDO 的 lastInsertID()。但我也想,如果用户正在添加一个已经在数据库中的名称,则无需将任何内容添加到数据库中,但仍然可以获取该 id 而无需进行另一个数据库调用。我希望像
INSERT OR REPLACE INTO table_name (name) VALUES ("my name");
让它只是将相同的数据覆盖到单元格中并返回 lastInsertID(即使它没有被插入?)。但这不起作用。我还有哪些其他选择?我是否需要进行单独的数据库查询以查看 name 字段是否已存在?
【问题讨论】: