sql >> Database teknologi >  >> RDS >> Mysql

Mysql datetime DEFAULT CURRENT_TIMESTAMP fejl

DEFAULT CURRENT_TIMESTAMP understøttelse af en DATETIME (datatype) blev tilføjet i MySQL 5.6.

I 5.5 og tidligere versioner gjaldt dette kun for TIMESTAMP (datatype) kolonner.

Det er muligt at bruge en BEFORE INSERT trigger i 5.5 for at tildele en standardværdi til en kolonne.

 DELIMITER $$

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

Stor og store bogstaver (af forespørgsler mod værdier gemt i kolonner) skyldes collation bruges til kolonnen. Samlinger, der ender på _ci er ufølsomme for store og små bogstaver. For eksempel latin1_swedish_ci er ufølsom mellem store og små bogstaver, men latin1_general_cs der skelnes mellem store og små bogstaver.

Outputtet fra SHOW CREATE TABLE foo vil vise tegnsættet og sorteringen for tegntypekolonnerne. Dette er angivet på et kolonneniveau. "Standard" angivet på tabelniveau gælder for nye kolonner, der tilføjes til tabellen, når den nye kolonnedefinition ikke angiver et tegnsæt.

OPDATERING

Kaii påpegede, at mit svar vedrørende "case sensitivity" handler om værdier gemt i kolonner, og om forespørgsler vil returnere en værdi fra en kolonne, der indeholder værdien "New" vil blive returneret med et prædikat som "t.col = 'new'" .

Se Kaiis svar vedrørende identifikatorer (f.eks. tabelnavne) håndteres anderledes (som standard) på Windows end på Linux.



  1. 7 gratis værktøjer til databasediagram for travle datafolk

  2. Hvorfor mysql begivenhedsplan ikke virker i databasen localhost?

  3. Neo4j - Slet en node ved hjælp af Cypher

  4. Implementering af rekursive kommentarer i PHP/MySQL