0
삽입 트리거 이후에 문제가 있습니다. 테이블에 데이터를 삽입 할 때 날짜를 자동으로 업데이트해야하며 현재 날짜 여야합니다. 하지만 다음 쿼리를 실행할 때 테이블에 제대로 작동하지 않습니다. 난이 트리거 생성이어서삽입 트리거 현재 날짜가 업데이트되지 않습니다.
DROP TABLE IF EXISTS `ignite`.`products`;
CREATE TABLE `ignite`.`products`(
`products_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`products_model` varchar(30) NOT NULL,
`model_hash` bigint(20) unsigned NOT NULL,
`Product_name` varchar(45) NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (`products_id`)
) ENGINE=MyISAM AUTO_INCREMENT=977 DEFAULT CHARSET=latin1;
: 우선 테이블을 생성
use ignite;
CREATE TRIGGER created_date BEFORE INSERT ON products
FOR EACH ROW
SET NEW.created = NOW();
을하지만,이 테이블의 데이터를 삽입하고 때
use ignite;
INSERT INTO products
(products_id, products_model, model_hash, Product_name)
values
(123, "456645", 457567, "awetert");
이 도시되어 다음 오류 :
field 'created' does not have default value. error-1364
트리거가 삽입하기 전에 실행되도록 설정해야합니다. 업데이트 할 행이 아직 존재하지 않습니다. 또한 생성 된 열의 기본값을 CURRENT_TIMESTAMP로 설정할 수 있으므로 트리거를 사용하면 업데이트가 완전히 필요하지 않습니다. – WebChemist