2017-12-07 2 views
0

필자는 데이터베이스를 테이블 필드에 삽입 할 때마다 0으로 1을 대체하려고 필사적으로 노력하고 있습니다. 나는이 분야를 Stazione이라고 불렀는데, 거기에는 "numerodibinari"가 있는데, 나는 그것이 0이되기를 원하지 않는다. 나는 이것을 시도했다.MYSQL Workbench. 특정 삽입을 차단하는 트리거

Create trigger gestionebinari 

Before insert on stazione 

for each row 

Begin 
If (new.'numero di binari'=0) 

then 
Set (new.'numero di binari'=1); 

그러나 여전히 작동하지 않습니다. 내가 무엇을 할 수 있을지?

+1

어떤 방식으로 작동하지 않습니까? –

+0

'numero di binari '는 무엇인가? 열 이름? –

+0

제 문법이 잘못되었다고 계속 말합니다. Numero di binari는 열 이름입니다. –

답변

1

이스케이프 열 이름에 작은 따옴표를 사용할 수 없습니다. 열 이름에 공백이 있으면 좋지 않거나 불필요한 불필요한 브라케팅 시도

drop table if exists stazione; 
create table stazione(`numero di binari` int); 

drop trigger if exists gestionebinari; 

delimiter $$ 
Create trigger gestionebinari 
Before insert on stazione 
for each row 
Begin 
If new.`numero di binari`=0 
then 
Set new.`numero di binari`=1; 
end if; 
end $$ 
delimiter ; 

insert into stazione values (0); 
select * from stazione; 

mysql> select * from stazione; 
+------------------+ 
| numero di binari | 
+------------------+ 
|    1 | 
+------------------+ 
1 row in set (0.00 sec) 
+0

완벽하게 작동합니다. 정말 고맙습니다. 구분 기호와 $$가 어떻게 작동하는지 설명해 주시겠습니까? –

+0

https://dev.mysql.com/doc/refman/5.7/en/stored-programs-defining.html –

+0

도움을 주셔서 감사합니다. –