sql >> Databáze >  >> RDS >> Mysql

Chyba Mysql datetime DEFAULT CURRENT_TIMESTAMP

DEFAULT CURRENT_TIMESTAMP podpora pro DATETIME (datatype) byl přidán do MySQL 5.6.

Ve verzi 5.5 a dřívějších verzích to platilo pouze pro TIMESTAMP (datový typ).

Je možné použít BEFORE INSERT spusťte v 5.5 pro přiřazení výchozí hodnoty sloupci.

 DELIMITER $$

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

Rozlišování malých a velkých písmen (dotazů na hodnoty uložené ve sloupcích) je způsobeno collation použitý pro sloup. Porovnání končící na _ci nerozlišují malá a velká písmena. Například latin1_swedish_ci nerozlišuje malá a velká písmena, ale latin1_general_cs rozlišuje velká a malá písmena.

Výstup z SHOW CREATE TABLE foo zobrazí znakovou sadu a řazení pro sloupce typu znaků. Toto je specifikováno na úrovni jednotlivých sloupců. "Výchozí" zadaná na úrovni tabulky platí pro nové sloupce přidané do tabulky, pokud nová definice sloupce neurčuje znakovou sadu.

AKTUALIZACE

Kaii poukázal na to, že moje odpověď týkající se "rozlišování malých a velkých písmen" se zabývá hodnotami uloženými ve sloupcích a tím, zda dotazy vrátí hodnotu ze sloupce obsahujícího hodnotu "New" bude vráceno s predikátem jako "t.col = 'new'" .

Viz odpověď Kaii ohledně identifikátorů (např. názvy tabulek) jsou ve Windows zpracovávány jinak (ve výchozím nastavení) než v Linuxu.



  1. ver.2 CHYBA PyGreSQL:z importu _pg * Chyba importu:Načtení knihovny DLL se nezdařilo:Zadaný modul nebyl nalezen

  2. Je nutné použít mysql_real_escape_string(), když je zapnutá magic_quotes_gpc?

  3. Použití TUPLES k vložení více než 1000 položek do klauzule SQL IN

  4. Identifikace a oprava problému s výkonem předávaných záznamů