Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak dodać ograniczenie NOT NULL w MySQL?

Jeśli chcesz ustawić kolumnę MySQL, aby nie akceptowała wartości null, możesz dodać ograniczenie NOT NULL w MySQL. Możesz dodać ograniczenie NOT NULL podczas tworzenia tabeli za pomocą instrukcji CREATE TABLE lub dodać ograniczenie NOT NULL w istniejącej tabeli za pomocą instrukcji ALTER TABLE. Oto jak dodać ograniczenie NOT NULL w MySQL.

Jak dodać ograniczenie NOT NULL w MySQL

Oto kroki, aby dodać ograniczenie NOT NULL dla kolumny w MySQL, dodać ograniczenie NOT NULL do istniejącej kolumny i usunąć ograniczenie NOT NULL z kolumny.

Oto składnia do zdefiniowania ograniczenia NOT NULL w MySQL podczas tworzenia nowej tabeli.

column_name data_type NOT NULL;

W powyższym oświadczeniu musisz określić NOT NULL po wymienieniu nazwa_kolumny i jego data_type

Oto przykład, jak dodać ograniczenie NOT NULL w MySQL.

mysql> create table product_sales(
     id int,
     amount int NOT NULL,
     order_date date
     );

mysql> describe product_sales;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| id         | int(11) | YES  |     | NULL    |       |
| amount     | int(11) | NO   |     | NULL    |       |
| order_date | date    | YES  |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

mysql> insert into product_sales(id, order_date)
     values(1,'2020-08-01');
ERROR 1364 (HY000): Field 'amount' doesn't have a default value

W powyższym zapytaniu CREATE TABLE dodaliśmy ograniczenie NOT NULL dla amount kolumna. Gdy wstawisz w tej kolumnie wartość NULL, MySQL zgłosi błąd.

Przeczytaj bonus:Jak dodać domyślne ograniczenie w MySQL

ALTER TABLE Dodaj ograniczenie NOT NULL w MySQL

Możesz również dodać ograniczenie NOT NULL do istniejącej kolumny w MySQL za pomocą instrukcji ALTER TABLE … CHANGE. Oto składnia, jak dodać ograniczenie „not null” do istniejącej tabeli w MySQL.

ALTER TABLE table_name
CHANGE 
   old_column_name 
   new_column_name column_definition;

W powyższym zapytaniu wymieniamy tę samą nazwę kolumny dla starej_nazwa_kolumny i nowej_nazwa_kolumny. Po nazwie nowej_kolumny musi następować definicja_kolumny typu danych i słowo kluczowe NOT NULL.

Oto przykład zapytania SQL, które dodaje ograniczenie NOT NULL do istniejącej kolumny w MySQL.

mysql> ALTER TABLE product_sales
     CHANGE
         order_date
         order_date DATE NOT NULL;

mysql> describe product_sales;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| id         | int(11) | YES  |     | NULL    |       |
| amount     | int(11) | NO   |     | NULL    |       |
| order_date | date    | NO   |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

W powyższym zapytaniu dodaliśmy ograniczenie NOT NULL do istniejącej kolumny order_date

Przeczytaj bonus:MySQL wybierz N pierwszych wierszy na grupę

Jak usunąć ograniczenie NOT NULL

Możesz również usunąć ograniczenie NOT NULL za pomocą instrukcji ALTER TABLE … MODIFY. Oto składnia usuwania ograniczenia NOT NULL w MySQL.

ALTER TABLE table_name
MODIFY column_name column_definition;

W powyższym zapytaniu musisz określić nazwę kolumny i definicję, dla której chcesz usunąć ograniczenie NOT NULL.

Oto przykład, jak usunąć ograniczenie NOT NULL dla data_zamówienia kolumna.

mysql> ALTER TABLE product_sales
       MODIFY order_date DATE;

mysql> describe product_sales;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| id         | int(11) | YES  |     | NULL    |       |
| amount     | int(11) | NO   |     | NULL    |       |
| order_date | date    | YES  |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

Przeczytaj bonus:Jak uzyskać dane z ostatniego tygodnia w MySQL

Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql:dlaczego porównanie 'ciągu' do 0 daje prawdę?

  2. Jak wykonać kopię zapasową baz danych MySQL za pomocą AutoMySQLBackup

  3. Różnica między SELECT INTO i INSERT INTO w MySQL

  4. NULL w MySQL (wydajność i pamięć masowa)

  5. Jak zmienić nazwy tabel MySQL na serwerze Linux, aby nie uwzględniały wielkości liter?