Hướng dẫn mysql shift - thay đổi mysql
5.1.11 & NBSP; Chế độ SQL máy chủMáy chủ MySQL có thể hoạt động ở các chế độ SQL khác nhau và có thể áp dụng các chế độ này khác nhau cho các máy khách khác nhau, tùy thuộc vào giá trị của biến hệ thống 0. DBA có thể đặt chế độ SQL toàn cầu để phù hợp với các yêu cầu vận hành máy chủ trang web và mỗi ứng dụng có thể đặt chế độ SQL phiên của mình thành các yêu cầu của riêng mình.Các chế độ ảnh hưởng đến cú pháp SQL Hỗ trợ MySQL và kiểm tra xác thực dữ liệu mà nó thực hiện. Điều này giúp sử dụng MySQL dễ dàng hơn trong các môi trường khác nhau và sử dụng MySQL cùng với các máy chủ cơ sở dữ liệu khác.
Để biết câu trả lời cho các câu hỏi thường được hỏi về các chế độ SQL của máy chủ trong MySQL, xem Phần & NBSP; A.3, MYSQL 8.0 FAQ: Máy chủ SQL Chế độ. Khi làm việc với các bảng 1, cũng xem xét biến hệ thống 2. Nó cho phép kiểm tra lỗi bổ sung cho các bảng 1.Đặt chế độ SQLCác chế độ SQL quan trọng nhất Danh sách đầy đủ các chế độ SQL Kết hợp các chế độ SQL Chế độ SQL nghiêm ngặt So sánh từ khóa bỏ qua và chế độ SQL nghiêm ngặt Để biết câu trả lời cho các câu hỏi thường được hỏi về các chế độ SQL của máy chủ trong MySQL, xem Phần & NBSP; A.3, MYSQL 8.0 FAQ: Máy chủ SQL Chế độ.
Khi làm việc với các bảng 1, cũng xem xét biến hệ thống 2. Nó cho phép kiểm tra lỗi bổ sung cho các bảng 1.Chế độ SQL mặc định trong MySQL 8.0 bao gồm các chế độ sau: 4, 5, 6, 7, 8 và 9.
Để đặt chế độ SQL tại khởi động máy chủ, hãy sử dụng tùy chọn 0 "trên dòng lệnh hoặc 1" trong một tệp tùy chọn như 2 (Hệ điều hành UNIX) hoặc 3 (Windows). 4 là danh sách các chế độ khác nhau được phân tách bằng dấu phẩy. Để xóa chế độ SQL một cách rõ ràng, hãy đặt nó thành một chuỗi trống bằng cách sử dụng 5 trên dòng lệnh hoặc 6 trong một tệp tùy chọn.Ghi chú Changing the server SQL mode after creating and inserting data into partitioned tables can cause major changes in the behavior of such tables, and could lead to loss or corruption of data. It is strongly recommended that you never change the SQL mode once you have created tables employing user-defined partitioning. Các chương trình cài đặt MySQL có thể định cấu hình chế độ SQL trong quá trình cài đặt. Nếu chế độ SQL khác với mặc định hoặc với những gì bạn mong đợi, hãy kiểm tra cài đặt trong tệp tùy chọn mà máy chủ đọc khi khởi động. Các chế độ SQL quan trọng nhấtDanh sách đầy đủ các chế độ SQL
So sánh từ khóa bỏ qua và chế độ SQL nghiêm ngặt“strict mode,” it means a mode with either or both 5 or 3 enabled. Danh sách đầy đủ các chế độ SQLKết hợp các chế độ SQL
Kết hợp các chế độ SQLCác chế độ đặc biệt sau đây được cung cấp dưới dạng tốc ký cho các kết hợp các giá trị chế độ từ danh sách trước.
Chế độ SQL nghiêm ngặtChế độ nghiêm ngặt kiểm soát cách MySQL xử lý các giá trị không hợp lệ hoặc thiếu trong các câu lệnh thay đổi dữ liệu như 0 hoặc 1. Một giá trị có thể không hợp lệ vì một số lý do. Ví dụ, nó có thể có loại dữ liệu sai cho cột hoặc nó có thể nằm ngoài phạm vi. Một giá trị bị thiếu khi một hàng mới được chèn không chứa giá trị cho cột Non -________ 72 không có mệnh đề 25 rõ ràng trong định nghĩa của nó. .Nếu chế độ nghiêm ngặt không có hiệu lực, MySQL chèn các giá trị được điều chỉnh cho các giá trị không hợp lệ hoặc bị thiếu và tạo ra các cảnh báo (xem Phần & NBSP; 13.7.7.42, Báo cáo cảnh báo Show Show). Trong chế độ nghiêm ngặt, bạn có thể tạo ra hành vi này bằng cách sử dụng 5 hoặc 30.Đối với các câu lệnh như 8 không thay đổi dữ liệu, các giá trị không hợp lệ sẽ tạo ra cảnh báo ở chế độ nghiêm ngặt, không phải là lỗi.Chế độ nghiêm ngặt tạo ra lỗi cho các nỗ lực tạo khóa vượt quá độ dài khóa tối đa. Khi chế độ nghiêm ngặt không được bật, điều này dẫn đến cảnh báo và cắt ngắn khóa theo chiều dài khóa tối đa. Chế độ nghiêm ngặt không ảnh hưởng đến liệu các ràng buộc khóa nước ngoài có được kiểm tra hay không. 32 có thể được sử dụng cho điều đó. .Chế độ SQL nghiêm ngặt có hiệu lực nếu 3 hoặc 5 được bật, mặc dù các hiệu ứng của các chế độ này khác nhau phần nào:
Chế độ nghiêm ngặt ảnh hưởng đến việc xử lý phân chia theo 0, 0 ngày và số không theo ngày như sau:
Để biết thêm thông tin về chế độ nghiêm ngặt đối với 4, hãy xem so sánh từ khóa bỏ qua và chế độ SQL nghiêm ngặt.Chế độ nghiêm ngặt ảnh hưởng đến việc xử lý phân chia theo 0, 0 ngày và số 0 trong ngày kết hợp với các chế độ 8, 7 và 6.So sánh từ khóa bỏ qua và chế độ SQL nghiêm ngặtPhần này so sánh hiệu quả đối với việc thực thi câu lệnh của từ khóa 4 (hạ cấp các lỗi đối với cảnh báo) và chế độ SQL nghiêm ngặt (nâng cấp cảnh báo về lỗi). Nó mô tả những tuyên bố mà chúng ảnh hưởng và lỗi nào họ áp dụng.Bảng sau đây trình bày so sánh tóm tắt về hành vi câu lệnh khi mặc định là tạo ra lỗi so với cảnh báo. Một ví dụ về khi mặc định là tạo ra một lỗi đang chèn 2 vào cột 69. Một ví dụ về khi mặc định là tạo cảnh báo là chèn giá trị của loại dữ liệu sai vào một cột (chẳng hạn như chèn chuỗi 70 vào cột số nguyên).
Với 4
Cảnh báo (giống như không có chế độ SQL mysql> SET sql_mode='';
mysql> CREATE TABLE test (c1 BIGINT UNSIGNED NOT NULL);
mysql> CREATE TABLE t1 SELECT c1 - 1 AS c2 FROM test;
mysql> DESCRIBE t1;
+-------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+-------+
| c2 | bigint(21) unsigned | NO | | 0 | |
+-------+---------------------+------+-----+---------+-------+
mysql> SET sql_mode='NO_UNSIGNED_SUBTRACTION';
mysql> CREATE TABLE t2 SELECT c1 - 1 AS c2 FROM test;
mysql> DESCRIBE t2;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| c2 | bigint(21) | NO | | 0 | |
+-------+------------+------+-----+---------+-------+ |