获取插入的ID如果插入发生REPLACE INTO
我正在使用REPLACE INTO
更新mod_id
是唯一/主键的行。如果它被插入,我想知道mysql_inserted_id()
。获取插入的ID如果插入发生REPLACE INTO
我尝试这样做:
$query_2 = $DB->query('REPLACE INTO mods (mod_id, group_id, css) VALUES (0, 4585, "css string")');
$inserted_id = mysql_insert_id();
但我不断收到的0
$inserted_id
即使插入happend。
我觉得,最好用INSERT... ON DUPLICATE KEY UPDATE
。原因在于REPLACE总是删除旧行,然后插入新行。 INSERT ... ON DUPLICATE KEY UPDATE时,尝试尽可能更新现有行(基于主键或唯一键)。你可以last_insert_id()
谢谢cjg,我的问题是,我想使独特的领域是一个TINYTEXT领域,我不能使它独特,这可能吗? – Noitidart
文本/ blob字段的用途是不同的,并且不能具有唯一的索引。使列成为VARCHAR(100)左右,并且可以添加索引。同时制作如此独特的长字符串也不会带来好的表现。我会建议验证唯一性检查是在应用程序代码中,而不是在数据库中 – georgecj11
mod_id是你的主要吗? –
是mod_id AUTO_INCREMENT吗? – Hatef
嗯谢谢你们在secon mode_id不是auto_incrment中找到了它。我解决这个问题! Btw有无论如何使文本字段主/唯一? – Noitidart