2016-09-21 75 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

相關問題