是否存在IF不存在mySQL查询?

时间:2012-04-21 16:05:50

标签: php mysql if-statement

使用mySQL进行INSERT工作正常...

 mysql_query("INSERT INTO FLIGHTS_AVAILABLE 
 (aircraftID, aircraftType, maxSeats) VALUES('$theaircraftID', '$addType', '$maxCapacity'      ) ") 
or die(mysql_error());  

 echo '<p>';
 echo "The following details were added into the database:";
 echo "<hr>";

  echo $theaircraftID . $addType . $maxCapacity;

这很好用,但是我看过网上,虽然我听说过一个名为IF NOT EXISTS的功能,但在网上对它的使用并没有很好的解释。

无论如何,我可以在上面运行此查询,前提是如果例如$ theaircraftID = 10,并且数据库中已经有一行,其中aircraftID = 10,则查询将不会运行?

感谢您提供的任何帮助,

汤姆

2 个答案:

答案 0 :(得分:3)

UNIQUE INDEX上添加'FLIGHTS_AVAILABLE'.'aircraftID'。 MySQL将使用相同的值阻止其他INSERT。此外,您可以使用ON DUPLICATE KEY EXISTS运行UPDATEINSERT会出现DUPLICATE KEY约束错误。

答案 1 :(得分:0)

您可以尝试按所需列创建唯一索引,然后使用INSERT IGNOREmysql_affected_rows