试图将table1中的数据删除到table2中

时间:2015-05-27 14:57:33

标签: mysqli

我有一张记录表,表1。

我想做两件事,从特定用户删除表1中的所有记录,并将这些删除的记录添加到table2,作为备份。 我正在使用mysqli准备好的语句。 如果可能的话,我也想用一个语句而不是多个语句来做。

我的研究让我想到了这个

$stmt2 = $c1->prepare("DELETE FROM `scroll` OUTPUT.* INTO `deletedscroll` WHERE user= ? ");

但我不断收到语法错误。这段代码可能不适用于mysqli是我的猜测,但是mysqli文档没有涉及到这一点。

有谁知道正确的语法?我也看到了使用的东西:

DELETE FROM [source]
OUTPUT [deleted].<column_list>
INTO [destination] (<column_list>) 

但我根本无法解决这个问题。

1 个答案:

答案 0 :(得分:0)

我已经开始使用它了,它使用了2个调用,但它可以完成工作而不会出错。

$stmt2 = $c1->prepare("INSERT INTO `deletedscroll` (user, text, flag,    date ) SELECT user, text, flag, date FROM `scroll` WHERE user= ? ");
$stmt2->bind_param('s', $user);
$stmt2->execute() or die(mysqli_error());
$stmt2->close();

//move deleted users records from scrolls to deleted table
$stmt3 = $c1->prepare("DELETE FROM `scroll` WHERE user= ? ");
$stmt3->bind_param('s', $user);
$stmt3->execute() or die(mysqli_error());
$stmt3->close();