반응형
MySQL: 트리거 시 오류 1064(42000)
제가 뭘 잘못하고 있는지 누가 이 방아쇠를 좀 도와주시겠어요?
BTW 가끔은 이런 오류가 없었어요...
CREATE DEFINER = CURRENT_USER TRIGGER `domitik_db`.`disp_hdw_BEFORE_INSERT` BEFORE INSERT ON `disp_hdw` FOR EACH ROW
BEGIN
declare boxId int UNSIGNED;
declare unitId VARCHAR;
SET unitId=(SELECT homeunit FROM t_cpl WHERE t_cpl.id=NEW.idhardware);
SET boxId=(SELECT dispositifs.idbox FROM dispositifs WHERE dispositifs.id = NEW.iddispositif);
IF (SELECT COUNT(*) FROM disp_hdw, dispositifs, t_cpl as tp WHERE disp_hdw.iddispositif = dispositifs.id AND disp_hdw.idhardware=tp.id AND dispositifs.idbox = boxId AND tp.homeunit=unitId > 0)
THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Cannot add or update row: only one same homeunit id for a single box';
END IF;
END;
745행의 오류 1064(42000): SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 ';' 근처에서 사용할 올바른 구문을 확인하십시오.
SET unitId=(t_cpl WHERE t_cpl.id=NEW.id 하드웨어에서 홈 유닛 선택);
선언할 수 없습니다.varchar길이 없이. 그래서.
declare unitId VARCHAR;
그래야 한다
declare unitId VARCHAR(200);
트리거 코드에서 원하는 길이를 지정합니다.
언급URL : https://stackoverflow.com/questions/30167484/mysql-error-1064-42000-on-trigger
반응형
'programing' 카테고리의 다른 글
| 별칭 접두사를 사용하여 쿼리의 모든 열 (0) | 2023.09.01 |
|---|---|
| HTML5 자리 표시자 CSS 패딩 (0) | 2023.09.01 |
| HTML 앵커 링크 - href를 클릭하고 둘 다 클릭하시겠습니까? (0) | 2023.09.01 |
| 폼 데이터 대신 페이로드에 데이터를 게시하는 방법 (0) | 2023.08.27 |
| SQL 혼동에 가입하시겠습니까? (0) | 2023.08.27 |