sql >> Databasteknik >  >> RDS >> Mysql

Hur man lägger till standardbegränsning i MySQL

Ibland kan du behöva lägga till standardvärde till kolumn eller lägga till kolumn med standardvärde i MySQL. Du kan enkelt göra detta med standardbegränsning i MySQL. Så här lägger du till standardbegränsning i MySQL.

Hur man lägger till standardbegränsning i MySQL

Här är stegen för att lägga till standardbegränsning i MySQL. Du kan lägga till standardbegränsning när du skapar en tabell med CREATE TABLE-satsen eller efter tabellskapandet med ALTER TABLE-satsen. Vi kommer att titta på båda dessa tillvägagångssätt.

Hur man lägger till standardbegränsning med CREATE TABLE

Här är syntaxen för att lägga till standardbegränsning med CREATE-tabellsatsen.

mysql> create table table_name(
    column1 column1_definition DEFAULT default_value,
    column2 column2_definition,
    ...
  );

I SQL-frågan ovan måste du ange tabellnamnet tabellnamn . Du måste också nämna DEFAULT efter kolumndefinitionen för det fält som du vill lägga till standardvärde för. Du måste också ange standardvärdet för din kolumn.

Bonusläsning:MySQL Välj Top N rader per grupp

Här är ett exempel för att lägga till standardbegränsning i MySQL.

mysql> create table sample_data(
       id int,
       order_date date,
       amount int DEFAULT 0
     );

mysql> insert into sample_data(id, order_date)
       values(1,'2020-08-01');

mysql> select * from sample_data;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-08-01 |      0 |
+------+------------+--------+

I ovanstående SQL-fråga skapar vi sample_data tabell med DEFAULT värde 0 för kolumn belopp. Som du kan se, när vi infogar värden i sample_data , vi nämner inte värdet för belopp kolumn. Ändå tilldelar MySQL automatiskt standardvärdet 0 till denna kolumn.

Bonusläs:Hur man får förra veckans data i MySQL

ALTER TABLE lägg till kolumn med standardvärde i MySQL

På samma sätt kan du lägga till standardbegränsning med ALTER TABLE-satsen för befintliga tabeller. Här är syntaxen för det

mysql> ALTER TABLE table_name
          ALTER column_name SET DEFAULT default_value;

I ovanstående ALTER TABLE-sats måste du nämna tabellnamn, kolumnnamn och default_value

Här är ett exempel för att lägga till standardbegränsningar med  ALTER TABLE. Låt oss säga att du vill ställa in standardvärde för order_date kolumnen i ovanstående tabell sample_data

mysql> ALTER TABLE sample_data
       ALTER order_date SET DEFAULT '2020-08-03';

mysql> insert into sample_data(id)
       values(2);

mysql>select * from sample_data;

mysql> select * from sample_data;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-08-01 |      0 |
|    2 | 2020-08-03 |      0 |
+------+------------+--------+

I ovanstående SQL-fråga har vi lagt till standardbegränsning till order_date kolumn. Efter det tillhandahåller vi endast id kolumns värde i vår INSERT-sats. Ändå fyller MySQL automatiskt i order_date och belopp kolumner baserat på deras standardvärden.

Bonus Läs:MySQL Copy Database

Hur man tar bort standardvärde till kolumn

Om du behöver ta bort standardvärdet för kolumn, använd sedan DROP DEFAULT-satsen. Här är syntaxen för DROP DEFAULT-frågan.

mysql> ALTER TABLE table_name
          ALTER column_name DROP DEFAULT;

I ovanstående fråga måste du ange tabellnamn och kolumnnamn som du vill ta bort DEFAULT-begränsning för.

Här är ett exempel på DROP DEFAULT-begränsning i SQL.

mysql> ALTER TABLE sample_data
       ALTER order_date DROP DEFAULT;

I ovanstående uttalande har vi tagit bort standardbegränsningen från order_date kolumn.

Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. Är mysql_real_escape_string() trasig?

  2. Varför kan jag inte utesluta beroende kolumner från `GROUP BY` när jag aggregerar med en nyckel?

  3. Kontrollera överlappning av datumintervall i MySQL

  4. Hur man tyst installerar Postgresql i Ubuntu via. Dockerfil?