私はmysqlimportを使用して大量の表の挿入を行います(重複した主キーを置き換える)。いくつかのテーブルには、 '0000-00-00'という値を含むレコードを持つ日付時刻の列があります。私が望むのは、これらの '0000-00-00'の値を検出し、 '1950-01-01'で置き換えるトリガーです。それ以外の場合は、レコードのdatetime値を保持します( '0000-00-00'でない場合)。 。MYSQLケースステートメントを使用して日時値を設定する
私は次のことを試してみました:
CREATE TRIGGER set_datetime BEFORE INSERT ON tbl
FOR EACH ROW
CASE
WHEN date_col='0000-00-00' THEN SET date_col='1950-01-01';
END CASE
ありがとうございました。
EDIT
更新の試み:
CREATE TRIGGER set_datetime BEFORE INSERT ON tbl
FOR EACH ROW
IF (NEW.date_col='0000-00-00') THEN
SET NEW.date_col='1950-01-01';
END IF;
はまだSET部分でエラーを取得します。
EDIT 2
WORKING:
DELIMITER $$
CREATE TRIGGER insert_check BEFORE INSERT ON ar
FOR EACH ROW
BEGIN
IF NEW.delivery_date='0000-00-00' THEN
SET NEW.delivery_date='1950-01-01';
END IF;
END; $$
DELIMITER ;
どのようなエラーが、してください? – TehShrike