Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mysql datetime DEFAULT CURRENT_TIMESTAMP błąd

DEFAULT CURRENT_TIMESTAMP obsługa DATETIME (typ danych) został dodany w MySQL 5.6.

W wersji 5.5 i wcześniejszych dotyczyło to tylko TIMESTAMP kolumny (typ danych).

Możliwe jest użycie BEFORE INSERT wyzwalacz w 5.5, aby przypisać domyślną wartość do kolumny.

 DELIMITER $$

 CREATE TRIGGER ...
 BEFORE INSERT ON mytable
 FOR EACH ROW
 BEGIN
    IF NEW.mycol IS NULL THEN
       SET NEW.mycol = NOW();
    END IF;
 END$$

Rozróżnianie wielkości liter (zapytań względem wartości przechowywanych w kolumnach) wynika z collation używany do kolumny. Sortowanie kończące się na _ci wielkość liter nie jest rozróżniana. Na przykład latin1_swedish_ci wielkość liter nie jest rozróżniana, ale latin1_general_cs rozróżnia wielkość liter.

Dane wyjściowe z SHOW CREATE TABLE foo pokaże zestaw znaków i sortowanie dla kolumn typu znaków. Jest to określane na poziomie kolumny. "Domyślna" określona na poziomie tabeli dotyczy nowych kolumn dodanych do tabeli, gdy nowa definicja kolumny nie określa zestawu znaków.

AKTUALIZUJ

Kaii zwrócił uwagę, że moja odpowiedź dotycząca „rozróżniania wielkości liter” dotyczy wartości przechowywanych w kolumnach i tego, czy zapytania zwrócą wartość z kolumny zawierającej wartość "New" zostanie zwrócony z predykatem, takim jak "t.col = 'new'" .

Zobacz odpowiedź Kaii dotyczącą identyfikatorów (np. nazwy tabel) są obsługiwane inaczej (domyślnie) w systemie Windows niż w systemie Linux.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. laravel errno 150 ograniczenie klucza obcego jest nieprawidłowo utworzone

  2. Zapytanie MySQL do zliczania unikalnych domen z pola adresu e-mail

  3. Różnica MySQL między dwoma wierszami instrukcji SELECT

  4. połącz java z mysql za pomocą jdbc na osx

  5. Kolumna MySQL Sum IF ID jest w innym zapytaniu tabeli