0

我正在尝试执行以下查询:

INSERT INTO table_timesheet (name, datein, dateout)
VALUES ('Rupert', 'NOW()', '')
WHERE NOT EXISTS (
    SELECT name FROM table_listnames WHERE datein='NOW()'
);

但这会返回错误。

如果记录的“日期”字段已存在于另一条记录中,基本上我不想插入记录 - 如何检查新的日期是否唯一?

以及如何以相同的方式将日期插入同一行,例如更新 datein 行?

4

2 回答 2

3

此 INSERT 查询将完全按照您的要求进行:

INSERT INTO table_timesheet (name, datein, dateout)
SELECT 'Rupert', NOW(), null
FROM DUAL
WHERE NOT EXISTS (
    SELECT * FROM table_listnames WHERE datein=NOW()
);

请看这里。但是一个合适的解决方案是设置一个表约束。又是怎样的table_timesheet关系table_listnames?我会在 datein 列上使用唯一约束,但这取决于您的要求。

于 2015-12-05T09:30:40.210 回答
0

首先检查这个查询(使用 MYSQLI 或 PDO )如果这个查询返回 false 比你插入记录

如果...这返回 false

SELECT name FROM table_listnames WHERE datein='NOW()'

错误的

INSERT INTO table_timesheet (name, datein, dateout)VALUES ('Rupert', 'NOW()', '')
于 2015-12-05T09:29:17.630 回答