动态sql能否同时delete两个表,例如:
SET @sSql = CONCAT('DELETE FROM tbl1 WHERE ID in (',sID,');DELETE FROM tbl2 WHERE ID1 in (',sID1,')');
PREPARE stmt FROM @sSql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
能否这样写?

解决方案 »

  1.   

    不能,MYSQL HELP
    The following SQL statements can be used in prepared statements: 
    CREATE TABLE, DELETE, DO, INSERT, REPLACE, SELECT, SET, UPDATE, and most SHOW statements. 
      

  2.   

    不能这样写,PREPARE中只能是一个SQL语句。
    你可以分成两句来执行,可以用事务来操作原子性。
    DELETE是可以的.The following SQL statements can be used in prepared statements: CREATE TABLE, DELETE, DO, INSERT, REPLACE, SELECT, SET, UPDATE, and most SHOW statements. 
      

  3.   

    要想在PERPARE中写多个语句,就得利用其他的API。
      

  4.   


    随便哪个API都可以啊。
    看你用那种语言了。官方对这些API的使用介绍的很详细。