2016-12-28 8 views
1
CREATE TABLE `project` (
    `prj_id` int(11) NOT NULL AUTO_INCREMENT, 
    `prj_name` varchar(400) NOT NULL, 
    `prj_customer_id` int(11) NOT NULL, 
    `prj_url` varchar(400) NOT NULL, 
    `prj_description` varchar(400) NOT NULL, 
    `prj_status` int(11) NOT NULL, 
    `prj_member_id` int(11) NOT NULL, 
    `prj_crtd_by` varchar(50) NOT NULL, 
    `prj_crtd_dt` datetime NOT NULL, 
    `prj_updt_by` varchar(50) NOT NULL, 
    `prj_updt_dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `prj_last_ip` varchar(50) NOT NULL, 
    PRIMARY KEY (`prj_id`), 
    KEY `fk_project_customer_customer_id` (`prj_customer_id`), 
    KEY `fk_project_member_member_id` (`prj_member_id`), 
    CONSTRAINT `fk_project_customer_customer_id` FOREIGN KEY (`prj_customer_id`) REFERENCES `customer` (`cus_id`), 
    CONSTRAINT `fk_project_member_member_id` FOREIGN KEY (`prj_member_id`) REFERENCES `member` (`mem_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

このテーブルプロジェクトの3つの列のトリガを作成します。私はそれが作成され、そこからシステムのIPアドレスを更新する必要があり、それが作成された日付、それが更新されたときに日付を挿入prj_updt_dtprj_last_ipを挿入prj_crtd_dtの列のためのトリガーを作成します。MySQLの列にクライアントIPアドレスを取得するためのトリガを作成

私は日付の列のトリガーを作成していると私は、IPアドレスのため CREATE TRIGGER create_date_of_customer BEFORE INSERT ON customer FOR EACH ROW SET NEW.cus_crtd_dt = NOW(); NEW.cus_updt_dt = NOW();

+0

少し読みやすくしてみてください。 – filiprem

答えて

0

を作成する方法を知りたいあなたの質問が示されていません。しかし、私の理解によれば、フォローはあなたを助けるでしょう。 https://msdn.microsoft.com/en-us/library/ms189799.aspxを見ましたか?編集したquestion.ForがたIPAddress取得のために編集

この

あなたはcmdshellを有効にする必要があります。ただし、xp_cmdshellを有効にするとセキュリティ上の問題が発生するため、お勧めしません。あなたが代わりにサーバーのIPのサーバー名を使用することができる場合は、この、

SET NEW.cus_crtd_dt = NOW(); 
    NEW.cus_updt_dt = NOW(); 
    NEW.cus_last_ip= SERVERPROPERTY('MachineName'); 

またはこれ、

SET NEW.cus_crtd_dt = NOW(); 
    NEW.cus_updt_dt = NOW(); 
    NEW.cus_last_ip= @@SERVERNAME; 
+0

答えの代わりにコメントにこれを書くことができます; – Susang

+0

トリガーを作成するcreate_date_of_customer前に人を挿入する 各行に対して SET NEW.peo_crtd_dt = NOW(); NEW.peo_updt_by = NOW(); NEW.peo_last_ip = SERVERPROPERTY( 'MachineName'); 静的解析 解析中に1つのエラーが見つかりました。 認識されないステートメントタイプ。 (位置0に近い "NEW") SQLクエリ: NEW.peo_updt_by = NOW() MySQLは言った:ドキュメント #1064 - あなたのSQL構文でエラーが発生しています。あなたのMariaDBサーバのバージョンに対応するマニュアルをチェックして、正しい構文が1行目の 'NEW.peo_updt_by = NOW()'の近くで使用するようにしてください。 – Vidhya

+0

この事を手伝ってもらえますか?@Suraz – Vidhya

関連する問題