sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Hvad er standardværdien for et felt, hvis der ikke er angivet nogen standardværdi?

Med henvisning til manualen ,

For dataindtastning for en NOT NULL-kolonne, der ikke har nogen eksplicit DEFAULT-sætning, hvis en INSERT- eller REPLACE-sætning ikke indeholder nogen værdi for kolonnen, eller en UPDATE-sætning sætter kolonnen til NULL, håndterer MySQL kolonnen i overensstemmelse med den SQL-tilstand, der er gældende på det tidspunkt:

  • Hvis streng SQL-tilstand ikke er aktiveret, sætter MySQL kolonnen til den implicitte standardværdi for kolonnedatatypen.
  • Hvis streng tilstand er aktiveret, opstår der en fejl for transaktionstabeller, og sætningen rulles tilbage. For ikke-transaktionelle tabeller opstår der en
    fejl, men hvis dette sker for den anden eller efterfølgende række i en sætning med flere rækker, vil de foregående rækker være blevet indsat.

Så dit spørgsmål kan nu være, hvad er de implicitte standardværdier for de forskellige kolonnedatatyper? Her går du:

Implicitte standardindstillinger er defineret som følger:

  • For numeriske typer er standarden 0, med den undtagelse, at for heltals- eller flydende kommatyper, der er erklæret med AUTO_INCREMENT
    attributten, er standardværdien den næste værdi i sekvensen.
  • For andre dato- og tidstyper end TIMESTAMP er standardværdien den passende "nul"-værdi for typen. For den første TIMESTAMP-kolonne i en tabel er standardværdien den aktuelle dato og klokkeslæt. Se afsnit 10.3, "Dato- og tidstyper".
  • For andre strengtyper end ENUM er standardværdien den tomme streng. For ENUM er standardværdien den første opregningsværdi.


  1. MySQL #2006 - MySQL-serveren er forsvundet i phpMyAdmin

  2. SSMS tillader dublerede poster i en tabel, men ikke efterfølgende opdateringer

  3. SSMS udvidelsesmuligheder/tilføjelse - få aktuel database og server

  4. Kan ikke køre forespørgsel i MySQL-syntaksfejl uventet