Mysql standard

Mysql standard

"I dette innlegget vil vi diskutere hvordan du bruker standardbegrensningen i MySQL -kolonnen. Vi lærer hvordan du bruker denne begrensningstypen i definisjonen av tabellskjemaet for en bestemt kolonne.”

Hvis det høres interessant ut, la oss dykke og lære mer.

Mysql standard begrensningssyntaks

Utdraget nedenfor viser syntaks for standardbegrensningen:

col_name data_type standard standard_value;


La oss utforske syntaksen ovenfor.

Vi starter med kolonnenavnet, som spesifiserer navnet på kolonnen du ønsker å angi en standardbegrensning. Vi definerer deretter datatypen for nevnte kolonne.

Standard nøkkelord blir fulgt av standardverdien, som definerer en bokstavelig verdi. Derfor, hvis du setter inn eller oppdaterer en rad som ikke inkluderer en verdi for den kolonnen, vil MySQL bruke den definerte standardverdien i stedet for en nulltype.

Det er godt å huske på at standardverdien ikke kan være et uttrykk eller en funksjon.

Det er en god praksis å definere standardbegrensningen under tabelldefinisjon. Dette hjelper til med å bevare dataene i tabellen, og ingen tidligere data er satt til NULL.

Praktisk eksempel

Følgende eksempel viser hvordan du angir standardbegrensningen under opprettelse av bord.

MySQL> Opprett database Zero_Day;
Spørring OK, 1 rad berørt (0.00 sek)


Bruk måldatabase:

mysql> bruk null_dag;
Databasen endret


Lag en tabell med skjemaet vist nedenfor:

MySQL> Lag tabellposter (
-> id int ikke null auto_increment primærnøkkel,
-> rapport_navn varchar (255) ikke null,
-> rapport_dato dato ikke null,
-> rapport_author varchar (100) standard 'anonym',
-> alvorlighetsgrad int ikke null,
-> sjekk (alvorlighetsgrad> 0)
->);


Ovennevnte spørring oppretter en tabell kalt_records med forskjellige kolonner. Vær oppmerksom på rapport_author -kolonnen. Vi definerer en standardbegrensning og setter standardverdien til “Anonym”.

Derfor, hvis vi ikke spesifiserer verdien for den kolonnen, vil MySQL bruke den verdien i stedet for null.

Du kan bekrefte tabellskjemaet etter faktum ved hjelp av DESC -kommandoen:

Desc -poster;


Dette bør returnere tabelldefinisjonen som en tabell.


Som du kan se, inneholder rapport_aforfatter en standardverdi mens resten av kolonnene bruker null som standardverdi.

For å teste dette, kan vi sette inn postene som vist:

sett inn i poster (rapport_navn, rapport_date, alvorlighetsgrad)
verdier ('DESC-100', '2022-01-20', 6);


Innsatserklæringen ovenfor legger en post til tabellen uten å gi verdien for rapportene_tabelen.

Dette skal tvinge MySQL til å bruke standardverdien som vist:

mysql> velg * fra poster;


Utgangstabellen:

+----+-------------+-------------+---------------+----------+
| id | rapport_navn | rapport_date | rapport_author | alvorlighetsgrad |
+----+-------------+-------------+---------------+----------+
| 1 | DESC-100 | 2022-01-20 | Anonym | 6 |
+----+-------------+-------------+---------------+----------+
1 rad i sett (0.00 sek)


Som vi kan se, inneholder tabellen verdien “anonym” i stedet for null.

Legg til standardbegrensning på eksisterende tabell

Vi kan også legge til en standardbegrensning til en eksisterende tabell ved hjelp av Alter -tabellkommandoen som vist:

Kommandosyntaks er som vist:

ALTER TABLE TABLE_NAME
Alter kolonne kolonne_navn sett standard standard_value;


For å legge til en standardbegrensning til alvorlighetskolonnen: for eksempel for eksempel:

MySQL> Alter Table Records Alter Column Severity Set Standard 5;


Dette bør oppdatere alvorlighetskolonnen for å inkludere standardbegrensningen med en verdi på 5.

Konklusjon

I dette innlegget diskuterte vi hvordan du bruker settet og bruker standardbegrensningen i en tabellkolonne.