Cách chèn giá trị mặc định vào mysql

Nếu

ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
7 chứa
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
8 và bạn đang chèn vào một bảng giao dịch (như InnoDB) hoặc nếu SQL_MODE chứa
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
9, thì tất cả các cột
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
0 không có giá trị
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
1 (và không phải là AUTO_INCREMENT) phải được tham chiếu rõ ràng trong câu lệnh
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
2. Nếu không, một lỗi như thế này được tạo ra

ERROR 1364 (HY000): Field 'col' doesn't have a default value

Trong tất cả các trường hợp khác, nếu cột

ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
0 không có giá trị
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
1 không được tham chiếu, thì một giá trị trống sẽ được chèn vào (ví dụ: 0 cho cột
ERROR 1364 (HY000): Field 'col' doesn't have a default value
1 và '' cho cột
ERROR 1364 (HY000): Field 'col' doesn't have a default value
2). Xem ví dụ

Nếu cột

ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
0 có giá trị
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
1 không được tham chiếu, thì
ERROR 1364 (HY000): Field 'col' doesn't have a default value
5 sẽ được chèn vào

Nếu cột

ERROR 1364 (HY000): Field 'col' doesn't have a default value
5 có giá trị
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
1 không được tham chiếu, giá trị mặc định của nó sẽ được chèn vào. Cũng có thể chỉ định rõ ràng giá trị mặc định bằng cách sử dụng từ khóa
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
1 hoặc hàm
ERROR 1364 (HY000): Field 'col' doesn't have a default value
9

Nếu từ khóa

ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
1 được sử dụng nhưng cột không có giá trị
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
1, thì sẽ xảy ra lỗi như thế này

ERROR 1364 (HY000): Field 'col' doesn't have a default value

Theo mặc định, nếu bạn cố gắng chèn một hàng trùng lặp và có chỉ mục

ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
2, thì
ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
2 sẽ dừng lại và một lỗi như thế này được tạo ra

ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'

Để xử lý các bản sao, bạn có thể sử dụng mệnh đề IGNORE, INSERT ON DUPLICATE KEY UPDATE hoặc câu lệnh REPLACE. Lưu ý rằng các tùy chọn BỎ QUA và TRÌ HOÃN sẽ bị bỏ qua khi bạn sử dụng CẬP NHẬT KHÓA TRÊN DUPLICATE

Xem thêm

Bình luận

Nội dung được sao chép trên trang web này là tài sản của chủ sở hữu tương ứng và nội dung này không được MariaDB xem xét trước. Quan điểm, thông tin và ý kiến ​​được thể hiện bởi nội dung này không nhất thiết đại diện cho quan điểm của MariaDB hoặc bất kỳ bên nào khác

Ràng buộc

ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
1 cũng có thể được sử dụng để chèn các giá trị hệ thống, bằng cách sử dụng các hàm như

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
3

TẠO BẢNG Đơn đặt hàng (
    ID int NOT NULL,
    OrderNumber int NOT NULL,
    OrderDate ngày DEFAULT GetDATE
);


SQL MẶC ĐỊNH trên ALTER TABLE

Để tạo ràng buộc

ERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'
1 trên cột "Thành phố" khi bảng đã được tạo, hãy sử dụng SQL sau

Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh MySQL

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
5 để chèn một hoặc nhiều hàng vào một bảng

Giới thiệu về câu lệnh MySQL INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);Code language: SQL (Structured Query Language) (sql)5

Câu lệnh

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
5 cho phép bạn chèn một hoặc nhiều hàng vào một bảng. Sau đây minh họa cú pháp của câu lệnh

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
5

ERROR 1364 (HY000): Field 'col' doesn't have a default value
3

Trong cú pháp này,

  • Đầu tiên, chỉ định tên bảng và danh sách các cột được phân tách bằng dấu phẩy bên trong dấu ngoặc đơn sau mệnh đề

    INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

    Code language: SQL (Structured Query Language) (sql)
    9
  • Sau đó, đặt danh sách các giá trị được phân tách bằng dấu phẩy của các cột tương ứng bên trong dấu ngoặc đơn sau từ khóa
    ERROR 1364 (HY000): Field 'col' doesn't have a default value
    
    50

Số lượng cột và giá trị phải giống nhau. Ngoài ra, vị trí của các cột phải tương ứng với vị trí của các giá trị của chúng

Để chèn nhiều hàng vào một bảng bằng một câu lệnh

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
5, bạn sử dụng cú pháp sau

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)

Trong cú pháp này, các hàng được phân tách bằng dấu phẩy trong mệnh đề

ERROR 1364 (HY000): Field 'col' doesn't have a default value
50

MySQL INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);Code language: SQL (Structured Query Language) (sql)5 ví dụ

Hãy tạo một bảng mới tên là

ERROR 1364 (HY000): Field 'col' doesn't have a default value
54 để thực hành câu lệnh

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
5

ERROR 1364 (HY000): Field 'col' doesn't have a default value
5

1) MySQL INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);Code language: SQL (Structured Query Language) (sql)5 – ví dụ về INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);Code language: SQL (Structured Query Language) (sql)5 đơn giản

Câu lệnh sau chèn một hàng mới vào bảng

ERROR 1364 (HY000): Field 'col' doesn't have a default value
54

ERROR 1364 (HY000): Field 'col' doesn't have a default value
6

MySQL trả về thông báo sau

ERROR 1364 (HY000): Field 'col' doesn't have a default value
7

Điều đó có nghĩa là một hàng đã được chèn vào bảng

ERROR 1364 (HY000): Field 'col' doesn't have a default value
54 thành công

Truy vấn này trả về dữ liệu từ bảng

ERROR 1364 (HY000): Field 'col' doesn't have a default value
54

ERROR 1364 (HY000): Field 'col' doesn't have a default value
0

Đây là đầu ra

Cách chèn giá trị mặc định vào mysql
Cách chèn giá trị mặc định vào mysql

Trong ví dụ này, chúng tôi đã chỉ định các giá trị cho chỉ các cột

ERROR 1364 (HY000): Field 'col' doesn't have a default value
61 và
ERROR 1364 (HY000): Field 'col' doesn't have a default value
62. Đối với các cột khác, MySQL sử dụng các giá trị mặc định

Cột

ERROR 1364 (HY000): Field 'col' doesn't have a default value
63 là cột
ERROR 1364 (HY000): Field 'col' doesn't have a default value
64. Điều đó có nghĩa là MySQL tạo ra một số nguyên tuần tự bất cứ khi nào một hàng được chèn vào bảng

Các cột

ERROR 1364 (HY000): Field 'col' doesn't have a default value
65,
ERROR 1364 (HY000): Field 'col' doesn't have a default value
66 và
ERROR 1364 (HY000): Field 'col' doesn't have a default value
67 sử dụng
ERROR 1364 (HY000): Field 'col' doesn't have a default value
68 làm giá trị mặc định, do đó, MySQL sử dụng
ERROR 1364 (HY000): Field 'col' doesn't have a default value
69 để chèn vào các cột này nếu bạn không chỉ định giá trị của chúng trong câu lệnh

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
5

2) MySQL INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);Code language: SQL (Structured Query Language) (sql)5 – Ví dụ về chèn hàng bằng giá trị mặc định

Nếu bạn muốn chèn một giá trị mặc định vào một cột, bạn có hai cách

  • Bỏ qua cả tên và giá trị cột trong câu lệnh

    INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

    Code language: SQL (Structured Query Language) (sql)
    5
  • Chỉ định tên cột trong mệnh đề

    INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

    Code language: SQL (Structured Query Language) (sql)
    9 và sử dụng từ khóa
    ERROR 1364 (HY000): Field 'col' doesn't have a default value
    
    74 trong mệnh đề
    ERROR 1364 (HY000): Field 'col' doesn't have a default value
    
    50

Ví dụ sau minh họa cách thứ hai

ERROR 1364 (HY000): Field 'col' doesn't have a default value
6

Trong ví dụ này, chúng tôi đã chỉ định cột

ERROR 1364 (HY000): Field 'col' doesn't have a default value
62 và từ khóa  
ERROR 1364 (HY000): Field 'col' doesn't have a default value
74

Vì giá trị mặc định cho cột

ERROR 1364 (HY000): Field 'col' doesn't have a default value
62 là 3 như được khai báo trong định nghĩa bảng

ERROR 1364 (HY000): Field 'col' doesn't have a default value
0

MySQL sử dụng số 3 để chèn vào cột

ERROR 1364 (HY000): Field 'col' doesn't have a default value
62

Câu lệnh sau trả về nội dung của bảng

ERROR 1364 (HY000): Field 'col' doesn't have a default value
54 sau khi chèn

ERROR 1364 (HY000): Field 'col' doesn't have a default value
0
Cách chèn giá trị mặc định vào mysql
Cách chèn giá trị mặc định vào mysql

3) MySQL INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);Code language: SQL (Structured Query Language) (sql)5 – Ví dụ về chèn ngày vào bảng

Để chèn một giá trị ngày bằng chữ vào một cột, bạn sử dụng định dạng sau

ERROR 1364 (HY000): Field 'col' doesn't have a default value
5

ở định dạng này

  • ERROR 1364 (HY000): Field 'col' doesn't have a default value
    
    02 đại diện cho năm có bốn chữ số e. g. , 2018
  • ERROR 1364 (HY000): Field 'col' doesn't have a default value
    
    03 đại diện cho một tháng có hai chữ số e. g. , 01, 02 và 12
  • ERROR 1364 (HY000): Field 'col' doesn't have a default value
    
    04 đại diện cho một ngày có hai chữ số. g. , 01, 02, 30

Câu lệnh sau đây chèn một hàng mới vào bảng

ERROR 1364 (HY000): Field 'col' doesn't have a default value
54 với các giá trị ngày bắt đầu và ngày đáo hạn

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
0

Hình ảnh sau đây cho thấy nội dung của bảng

ERROR 1364 (HY000): Field 'col' doesn't have a default value
54 sau khi chèn

Cách chèn giá trị mặc định vào mysql
Cách chèn giá trị mặc định vào mysql

Có thể sử dụng các biểu thức trong mệnh đề

ERROR 1364 (HY000): Field 'col' doesn't have a default value
50. Ví dụ: câu lệnh sau đây thêm một nhiệm vụ mới bằng cách sử dụng ngày hiện tại cho các cột ngày bắt đầu và ngày đến hạn

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
1

Trong ví dụ này, chúng tôi đã sử dụng hàm

ERROR 1364 (HY000): Field 'col' doesn't have a default value
08 làm giá trị cho cột
ERROR 1364 (HY000): Field 'col' doesn't have a default value
65 và
ERROR 1364 (HY000): Field 'col' doesn't have a default value
66. Lưu ý rằng hàm
ERROR 1364 (HY000): Field 'col' doesn't have a default value
61 là hàm ngày trả về ngày hệ thống hiện tại

Đây là nội dung của bảng

ERROR 1364 (HY000): Field 'col' doesn't have a default value
54 sau khi chèn

Cách chèn giá trị mặc định vào mysql
Cách chèn giá trị mặc định vào mysql

4) MySQL INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);Code language: SQL (Structured Query Language) (sql)5 – Ví dụ về chèn nhiều hàng

Câu lệnh sau chèn ba hàng vào bảng

ERROR 1364 (HY000): Field 'col' doesn't have a default value
54

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
2

Trong ví dụ này, mỗi dữ liệu hàng được chỉ định dưới dạng danh sách các giá trị trong mệnh đề

ERROR 1364 (HY000): Field 'col' doesn't have a default value
50

MySQL trả về thông báo sau

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
3

Điều đó có nghĩa là ba hàng đã được chèn thành công mà không có hàng trùng lặp hoặc cảnh báo nào

ERROR 1364 (HY000): Field 'col' doesn't have a default value
0

Bảng

ERROR 1364 (HY000): Field 'col' doesn't have a default value
54 có dữ liệu sau

Cách chèn giá trị mặc định vào mysql
Cách chèn giá trị mặc định vào mysql

Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh MySQL

INSERT INTO table(c1,c2,...) VALUES (v11,v12,...), (v21,v22,...), ... (vnn,vn2,...);

Code language: SQL (Structured Query Language) (sql)
5 để thêm một hoặc nhiều hàng vào một bảng