Odpowiedz
Zmienia ogranicznik instrukcji z ;
na //
. To jest tak, że możesz napisać ;
w definicji wyzwalacza, a klient MySQL nie interpretuje tego w ten sposób, ponieważ oznacza to, że skończyłeś.
Pamiętaj, że podczas cofania się jest DELIMITER ;
, a nie DELIMITER;
, tak jak widziałem, jak ludzie próbują to zrobić.
W języku SQL zamykasz każdą instrukcję ogranicznikiem, domyślnie średnikiem (;). W wyzwalaczu trzeba napisać wiele instrukcji, z których każda kończy się średnikiem. Aby powiedzieć MySQL, że te średniki nie są końcem Twojej instrukcji wyzwalacza, tymczasowo zmienisz separator; do //, więc MySQL będzie wiedział, że instrukcja wyzwalacza kończy się tylko wtedy, gdy ecnexnters jest //.
Przeczytaj (ummmm) mysql documentation.
delimiter
to znacznik końca każdego polecenia wysyłanego do klienta wiersza poleceń mysql.
delimiter
jest nie tylko związana z wyzwalaczami, ale definiowanie wyzwalaczy i procedur przechowywanych jest jednym z bardzo użytecznych przypadków, ponieważ chcesz, aby zawierały one średniki (;), które w przeciwnym razie są domyślne delimiter
.
Proste ustawia koniec ogranicznika instrukcji (;
średnik w standardowym, domyślnym języku SQL). Zmiana znaku może być przydatna, jeśli chcesz użyć kodu ;
w swoim SQL lub używasz wbudowanego SQL (gdzie może to prowadzić do pomyłek). podobnie przykład //
w twoim przykładzie może doprowadzić do zamieszania we wbudowanym SQL lub możesz użyć go w swoim SQL. Oznacza to, że należy użyć parametru DELIMITER
, aby ustawić ogranicznik odpowiedni dla danej aplikacji i potrzeb.
Dodaj przykład:
Podczas pracy z komendą powłoki mysql używaliśmy ogranicznika ;
do zamykania każdej instrukcji. Jednak w przypadku, gdy chcemy zbudować procedury i wyzwalacze sklepu, musimy dodać również średnik ;
w tych instrukcjach.
> delimiter //
> create trigger log_students after insert on students
> for each row
> begin
> insert into log_students(change_by, change_at) values(USER(), NOW());
> end//
> delimiter ;
- 1. mysql uzyskiwanie last_insert_id() w wyzwalaczu
- 2. Co robi * w CSS?
- 3. Co robi% w JavaScript?
- 4. Błędy składni MySQL DELIMITER
- 5. Błąd składni MySQL delimiter
- 6. przechodzenie przez kolumny w wyzwalaczu mysql
- 7. Co Boxen i co robi?
- 8. Co robi znak @ w jQuery?
- 9. Co robi \ 1 w sed?
- 10. Co robi Collections.unmodifiableSet() w Javie?
- 11. Co robi symbol "@" w Powershell?
- 12. Co robi session_destroy() w PHP?
- 13. Co robi? zrobić w Elixir
- 14. Co robi `` ... znaczy w idź
- 15. Co robi rebaseall w Cygwin?
- 16. Co robi "^: static" w Clojure?
- 17. Co [[]] * 2 robi w pythonie?
- 18. Co robi config.gem (w environment.rb)?
- 19. Co {} robi w ciągu znaków?
- 20. Co robi dodatkowy przycisk "$()" w "$ ($())"?
- 21. Co robi% w poniższym kodzie?
- 22. co robi int() w C++?
- 23. Co robi * ~ w pliku .gitignore?
- 24. Co robi autoload w zsh?
- 25. Co robi <() w Bash?
- 26. Co robi "%% DatabaseEx" w TSQL?
- 27. Co robi "Force" w Unecrustify?
- 28. Co robi `session.entropy_length` w` PHP.ini`?
- 29. Co robi mysqld_safe w my.cnf?
- 30. Co robi opt.apply_gradients() w TensorFlow?
Czy jest to składnia mysql lub polecenie powłoki mysql? – nafg
Polecenie powłoki mysql –