使用Mysql IF条件进行多次INSERT

时间:2014-02-10 13:48:45

标签: mysql sql

我想在Mysql中使用条件如下

我有2个表 - tblPage,tblContent

SQL应按以下顺序执行操作

  1. 检查tblPage中的page_name =“Home”,如果为false,请转到步骤2.
  2. 在tblPage中插入一些值,然后获取上次插入ID
  3. 在tbContent中插入一些值与最后一个Insert Id(of tblPage),和 得到它自己的lastInsertId。
  4. 在tbContent中插入一些值与lastInsertId(tbContent),和 得到它自己的lastInsertId。
  5. 继续这样插入。
  6. 步骤1检查指定列中是否存在任何特定值

    步骤2如果存在指定的value="Home",则跳过步骤,如果不是,则在tblPage中插入一些值并获取最后一个Insert Id

    步骤3使用前一个INSERT的lastInsertId在同一个表中插入一些值

    这个步骤可以通过这种方式在同一个表中插入一些其他行,每个INSERT获取 下一次

    上次插入ID

    我认为它与MySql IFNULL,NULIF,LAST_INSERT_ID等有关,但我无法通过

    我试过这个但IF条件仍然不存在。如果tblPage中存在name ='home',我需要执行其余的查询

    BEGIN
    INSERT INTO 'tblPage' ('id','name','url') VALUES 
    (NULL,'index','home/index');
    SET @last_id_in_page = LAST_INSERT_ID();
    INSERT INTO 'tblcontent' ('id','page_id','parent') VALUES 
    (NULL,@last_id_in_page,'home/index');
    SET @last_id_in_content = LAST_INSERT_ID();
    INSERT INTO 'tblcontent' ('id','page_id','parent') VALUES 
    (NULL,@last_id_in_page,@last_id_in_content);
    SET @last_id_in_content = LAST_INSERT_ID();
    INSERT INTO 'tblcontent' ('id','page_id','parent') VALUES 
    (NULL,@last_id_in_page,@last_id_in_content);
    COMMIT;
    

1 个答案:

答案 0 :(得分:0)

要获取最后插入的ID,您可以使用

$id= mysql_insert_id(); 

插入查询后,您将在表格中获得最后插入的ID。