2016-09-21 77 views
0

我想创建一个将删除数据插入到备份表中的触发器,我写了这段代码,但它不起作用。当我创建这个触发器时,MYSQL会引发语法错误。我怎样才能得到预期的结果?任何帮助,将不胜感激。将删除数据插入到表中的触发器

BEGIN 
      IF EXISTS (SELECT * 
     FROM information_schema.tables 
     WHERE table_schema = 'jobportal' 
      AND table_name = 'dlt_jobs' 
     LIMIT 1) THEN 
      create table dlt_jobs (select *,now() as deleted_on from jobs where job_id=OLD.job_id) ; 
      ELSE 
      insert into dlt_jobs (username) values ('something'); 
      END IF; 

     END 
+0

,你应该知道一个程序员的语句,如“MySQL是扔语法错误,当我创造这个触发器“是无用的。请发布错误 – e4c5

+0

我以前从未使用触发器,作为程序员并不意味着我将掌握每种数据库和编程语言的知识。 – user3253282

+0

http://stackoverflow.com/help/how-to-ask – e4c5

回答

-1

如果u被删除或插入只需添加另一行代码来执行此任务和示例

<?php 
include_once '../dbconnect.php'; 
$error = false; 
if (isset($_POST['btn-signup'])) { 
    // clean user inputs to prevent sql injections 
    $emails = trim($_POST['emails']); 
    $emails = strip_tags($emails); 
    $emails = htmlspecialchars($emails); 
    //basic emails validation 
    if (!filter_var($emails,FILTER_VALIDATE_EMAIL)) { 
    $error = true; 
    $emailsError = "Please enter valid emails address."; 
    } else { 
    // check emails exist or not 
    $query = "SELECT emails FROM newsletter WHERE emails='$emails'"; 
    $result = mysql_query($query); 
    $count = mysql_num_rows($result); 
    if($count!=0){ 
    $error = true; 
    $emailsError = "Provided emails is already in use."; 
    } 
    } 
    // if there's no error, continue to signup 
    if(!$error) { 
    $query = "INSERT INTO newsletter(emails) VALUES('$emails')"; 
    $res = mysql_query($query); 
    if ($res) { 
    $errTyp = "success"; 
    $errMSG = "Successfully registered, you may login now"; 
    unset($emails); 
    } else { 
    $errTyp = "danger"; 
    $errMSG = "Something went wrong, try again later..."; 
    } 
    } 
} 
?> 
+0

在我的数据库中有几十个表,许多表具有更新/删除具有'级联'属性的外键,所以如果我删除表的行具有主键列,它将从表中删除许多外键所引用的主键 – user3253282

相关问题