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

데이터베이스에 수십 개의 테이블이 있습니다. 많은 테이블에 업데이트/삭제에 '캐스케이드'속성이있는 외래 키가 있습니다. 따라서 테이블의 행을 삭제하면 기본 키 열을 가지고, 그것은 외래 키가 기본 키를 referering하는 테이블에서 많은 행을 삭제합니다 – user3253282

관련 문제