Hướng dẫn how do i add a new table to an existing table in mysql? - làm cách nào để thêm một bảng mới vào một bảng hiện có trong mysql?
Show
13.1.9 & nbsp; thay đổi câu lệnh bảng
9 Thay đổi cấu trúc của bảng. Ví dụ: bạn có thể thêm hoặc xóa các cột, tạo hoặc phá hủy các chỉ mục, thay đổi loại cột hiện có hoặc đổi tên cột hoặc chính bảng. Bạn cũng có thể thay đổi các đặc điểm như công cụ lưu trữ được sử dụng cho bảng hoặc nhận xét bảng.
Có một số khía cạnh bổ sung cho câu lệnh 3, được mô tả theo các chủ đề sau trong phần này:
Tùy chọn bảngYêu cầu về hiệu suất và không gian Đồng thời kiểm soát Thêm và thả cột
Để xác minh rằng các tùy chọn bảng đã được thay đổi như dự định, sử dụng 34 hoặc truy vấn bảng 35.Yêu cầu về hiệu suất và không gianCác hoạt động 9 được xử lý bằng một trong các thuật toán sau:
Đối với các bảng sử dụng công cụ lưu trữ 28, các thuật toán này hoạt động như sau:
Xem Phần & NBSP; 23.6.11, Hoạt động trực tuyến với bảng thay đổi trong cụm NDB, để biết thêm thông tin. Điều khoản 49 là tùy chọn. Nếu mệnh đề 49 bị bỏ qua, MySQL sử dụng 51 cho các công cụ lưu trữ và các điều khoản 9 hỗ trợ nó. Nếu không, 53 được sử dụng. Nếu 53 không được hỗ trợ, 55 được sử dụng.Chỉ định một mệnh đề 49 yêu cầu thao tác sử dụng thuật toán được chỉ định cho các mệnh đề và công cụ lưu trữ hỗ trợ nó hoặc không bị lỗi. Chỉ định 57 giống như bỏ qua mệnh đề 49.
9 Các hoạt động sử dụng thuật toán 37 Đợi các hoạt động khác đang sửa đổi bảng để hoàn thành. Sau khi các thay đổi được áp dụng cho bản sao bảng, dữ liệu được sao chép, bảng gốc sẽ bị xóa và bản sao bảng được đổi tên thành tên của bảng gốc. Mặc dù hoạt động 9 thực thi, bảng gốc có thể đọc được bởi các phiên khác (với ngoại lệ được ghi nhận trong thời gian ngắn). Các bản cập nhật và ghi vào bảng bắt đầu sau khi hoạt động 3 bắt đầu bị đình trệ cho đến khi bảng mới sẵn sàng, sau đó được tự động chuyển hướng đến bảng mới. Bản sao tạm thời của bảng được tạo trong thư mục cơ sở dữ liệu của bảng gốc trừ khi đó là hoạt động 63 chuyển bảng sang cơ sở dữ liệu nằm trong một thư mục khác.Ngoại lệ được đề cập trước đó là 9 khối đọc (không chỉ ghi) tại điểm mà nó sẵn sàng xóa các cấu trúc bảng lỗi thời khỏi bộ đệm định nghĩa bảng và bảng. Tại thời điểm này, nó phải có được một khóa độc quyền. Để làm như vậy, nó chờ đợi những người đọc hiện tại kết thúc, và chặn các lần đọc và viết mới.Một hoạt động 9 sử dụng thuật toán 37 ngăn chặn các hoạt động DML đồng thời. Các truy vấn đồng thời vẫn được phép. Đó là, một hoạt động sao chép bảng luôn bao gồm ít nhất là các hạn chế đồng thời của 67 (cho phép các truy vấn nhưng không phải DML). Bạn có thể hạn chế hơn nữa sự đồng thời cho các hoạt động hỗ trợ mệnh đề 68 bằng cách chỉ định 69, ngăn chặn DML và truy vấn. Để biết thêm thông tin, xem kiểm soát đồng thời.Để buộc sử dụng thuật toán 37 cho hoạt động 9 không sử dụng nó, chỉ định 55 hoặc kích hoạt biến hệ thống 73. Nếu có xung đột giữa cài đặt 73 và mệnh đề 49 với giá trị khác với 76, mệnh đề 49 được ưu tiên.Đối với các bảng 7, hoạt động 9 sử dụng thuật toán 37 trên bảng nằm trong một không gian bảng chung có thể tăng lượng không gian được sử dụng bởi không gian bảng. Các hoạt động như vậy đòi hỏi nhiều không gian bổ sung như dữ liệu trong bảng cộng với các chỉ mục. Đối với một bảng nằm trong một không gian bảng chung, không gian bổ sung được sử dụng trong quá trình hoạt động không được phát hành trở lại hệ điều hành vì nó dành cho một bảng nằm trong một không gian bảng cho mỗi bảng.Để biết thông tin về các yêu cầu không gian cho các hoạt động DDL trực tuyến, xem Phần & NBSP; 15.12.3, Yêu cầu không gian DDL trực tuyến trực tuyến.
9 Các hoạt động hỗ trợ thuật toán 38 bao gồm:
9 Các hoạt động hỗ trợ thuật toán 39 bao gồm:
Để biết thêm thông tin về các hoạt động hỗ trợ 51, xem Phần & NBSP; 15.12.1, hoạt động DDL trực tuyến trực tuyến.
9 Nâng cấp các cột thời gian MySQL 5.5 lên định dạng 5.6 cho 11, 20, 21, 22 và 23 hoạt động. Chuyển đổi này không thể được thực hiện bằng thuật toán 38 vì bảng phải được xây dựng lại, do đó chỉ định 53 trong những trường hợp này dẫn đến lỗi. Chỉ định 55 nếu cần thiết.Nếu hoạt động 9 trên chỉ số nhiều trường hợp được sử dụng để phân vùng bảng bằng 28 thay đổi thứ tự của các cột, nó chỉ có thể được thực hiện bằng cách sử dụng 55.Các mệnh đề 30 và 31 ảnh hưởng đến việc 9 có thực hiện hoạt động tại chỗ để sửa đổi cột được tạo ảo hay không. Xem Phần & NBSP; 13.1.9.2, Bảng thay đổi và các cột được tạo.NDB Cluster 8.0 hỗ trợ các hoạt động trực tuyến sử dụng cú pháp 53 được sử dụng với máy chủ MySQL tiêu chuẩn. 28 không hỗ trợ thay đổi không gian bảng trực tuyến; Bắt đầu với NDB 8.0,21, nó không được phép. Xem Phần & NBSP; 23.6.11, Hoạt động trực tuyến với bảng thay đổi trong cụm NDB, để biết thêm thông tin.NDB 8.0,27 và sau đó, khi thực hiện sao chép 3, kiểm tra để đảm bảo rằng không có văn bản đồng thời nào được thực hiện vào bảng bị ảnh hưởng. Nếu nó thấy rằng bất kỳ đã được thực hiện, 28 sẽ bác bỏ tuyên bố 3 và tăng 38.
9 với 40 hoặc 41 không tạo ra bất kỳ bảng tạm thời hoặc tệp phân vùng tạm thời nào. 9 với 43, 44, 45, 46 hoặc 47 không tạo các bảng tạm thời (trừ khi được sử dụng với bảng 28); Tuy nhiên, các hoạt động này có thể và tạo ra các tệp phân vùng tạm thời.Các hoạt động 2 hoặc 5 cho các phân vùng 51 hoặc 52 là các hoạt động ngay lập tức hoặc gần như vậy. Các hoạt động 2 hoặc 54 cho các phân vùng 55 hoặc 28 Sao chép dữ liệu giữa tất cả các phân vùng, trừ khi 57 hoặc 58 được sử dụng; Điều này có hiệu quả giống như tạo một bảng mới, mặc dù hoạt động 2 hoặc 54 được thực hiện phân vùng theo phân vùng. 61 Bản sao hoạt động chỉ thay đổi các phân vùng và không chạm vào các phân vùng không thay đổi.Đối với các bảng 10, bạn có thể tăng tốc độ tái tạo chỉ số (phần chậm nhất của quá trình thay đổi) bằng cách đặt biến hệ thống 63 thành giá trị cao.Đồng thời kiểm soátĐối với các hoạt động 9 hỗ trợ nó, bạn có thể sử dụng mệnh đề 68 để kiểm soát mức độ đọc đồng thời và ghi trên bảng trong khi nó đang bị thay đổi. Chỉ định giá trị không mặc định cho điều khoản này cho phép bạn yêu cầu một lượng truy cập đồng thời hoặc độc quyền nhất định trong quá trình hoạt động thay đổi và tạm dừng hoạt động nếu mức độ khóa được yêu cầu không có sẵn.Chỉ 66 được phép cho các hoạt động sử dụng 51. Các tham số mệnh đề 68 khác không được áp dụng.Các tham số cho mệnh đề 68 là:
Thêm và thả cộtSử dụng 2 để thêm các cột mới vào bảng và 5 để xóa các cột hiện có. 82 là tiện ích mở rộng MySQL cho SQL tiêu chuẩn.Để thêm một cột tại một vị trí cụ thể trong một hàng bảng, hãy sử dụng 83 hoặc 84. Mặc định là thêm cột cuối cùng.Nếu một bảng chỉ chứa một cột, cột không thể được thả. Nếu những gì bạn dự định là xóa bảng, hãy sử dụng câu lệnh 85 thay thế.Nếu các cột bị rơi từ một bảng, các cột cũng bị xóa khỏi bất kỳ chỉ mục nào chúng là một phần. Nếu tất cả các cột tạo nên một chỉ mục bị loại bỏ, chỉ số cũng bị loại bỏ. Nếu bạn sử dụng 3 hoặc 87 để rút ngắn một cột có chỉ mục tồn tại trên cột và độ dài cột kết quả nhỏ hơn độ dài chỉ mục, MySQL tự động rút ngắn chỉ số.Đối với 88, nếu cột có giá trị mặc định biểu thức sử dụng hàm không xác định, câu lệnh có thể tạo ra cảnh báo hoặc lỗi. Để biết thêm thông tin, xem Phần & NBSP; 11.6, Kiểu dữ liệu Giá trị mặc định, và Phần & NBSP; 17.1.3.7, Hạn chế về sao chép với GTIDS.Đổi tên, định nghĩa lại và sắp xếp lại các cộtCác mệnh đề 3, 87, 6 và 1 cho phép các tên và định nghĩa của các cột hiện có được thay đổi. Họ có những đặc điểm so sánh này:
Có thể thay đổi một tên cột nhưng không phải là định nghĩa của nó. Để thay đổi một cột để thay đổi cả tên và định nghĩa của nó, hãy sử dụng 3, chỉ định tên cũ và mới và định nghĩa mới. Ví dụ: để đổi tên cột 10 từ 11 thành 12 và thay đổi định nghĩa của nó để sử dụng kiểu dữ liệu 13 trong khi vẫn giữ được thuộc tính 14, hãy làm điều này:
Để thay đổi định nghĩa cột nhưng không phải tên của nó, hãy sử dụng 3 hoặc 87. Với 3, cú pháp yêu cầu hai tên cột, vì vậy bạn phải chỉ định cùng tên hai lần để để lại tên không thay đổi. Ví dụ: để thay đổi định nghĩa của cột 12, hãy làm điều này: 0
87 thuận tiện hơn để thay đổi định nghĩa mà không thay đổi tên vì nó chỉ yêu cầu tên cột một lần: 1Để thay đổi tên cột nhưng không phải định nghĩa của nó, hãy sử dụng 3 hoặc 6. Với 3, cú pháp yêu cầu định nghĩa cột, vì vậy để không thay đổi định nghĩa, bạn phải tôn trọng định nghĩa mà cột hiện có. Ví dụ: để đổi tên cột 23 từ 12 thành 11, hãy làm điều này: 2
6 thuận tiện hơn để thay đổi tên mà không thay đổi định nghĩa vì nó chỉ yêu cầu tên cũ và mới: 3Nói chung, bạn không thể đổi tên một cột thành một tên đã tồn tại trong bảng. Tuy nhiên, điều này đôi khi không phải là trường hợp, chẳng hạn như khi bạn trao đổi tên hoặc di chuyển chúng qua một chu kỳ. Nếu một bảng có các cột có tên 11, 12 và 29, đây là các hoạt động hợp lệ: 4Đối với các thay đổi định nghĩa cột bằng cách sử dụng 3 hoặc 87, định nghĩa phải bao gồm kiểu dữ liệu và tất cả các thuộc tính sẽ áp dụng cho cột mới, ngoài các thuộc tính chỉ mục như 32 hoặc 33. Các thuộc tính có trong định nghĩa ban đầu nhưng không được chỉ định cho định nghĩa mới không được chuyển tiếp. Giả sử rằng một cột 34 được xác định là 35 và bạn sửa đổi cột như sau, có ý định chỉ thay đổi 36 thành 13: 5Tuyên bố đó thay đổi kiểu dữ liệu từ 36 thành 13, nhưng nó cũng giảm các thuộc tính 40, 76 và 42. Để giữ lại chúng, tuyên bố phải bao gồm chúng một cách rõ ràng: 6Đối với các thay đổi kiểu dữ liệu bằng cách sử dụng 3 hoặc 87, MySQL cố gắng chuyển đổi các giá trị cột hiện có thành loại mới tốt nhất có thể.Cảnh báo Chuyển đổi này có thể dẫn đến thay đổi dữ liệu. Ví dụ: nếu bạn rút ngắn một cột chuỗi, các giá trị có thể bị cắt. Để ngăn chặn hoạt động thành công nếu chuyển đổi sang kiểu dữ liệu mới sẽ dẫn đến việc mất dữ liệu, hãy bật chế độ SQL nghiêm ngặt trước khi sử dụng 9 (xem Phần & NBSP; 5.1.11, chế độ SQL Server SQL).Nếu bạn sử dụng 3 hoặc 87 để rút ngắn một cột có chỉ mục tồn tại trên cột và độ dài cột kết quả nhỏ hơn độ dài chỉ mục, MySQL tự động rút ngắn chỉ số.Đối với các cột được đổi tên bởi 3 hoặc 6, MySQL tự động đổi tên các tham chiếu này thành cột được đổi tên:
Đối với các cột được đổi tên bởi 3 hoặc 6, MySQL không tự động đổi tên các tham chiếu này thành cột được đổi tên:
Để sắp xếp lại các cột trong bảng, hãy sử dụng 83 và 98 trong các hoạt động 3 hoặc 87.
59 hoặc 60 Chỉ định giá trị mặc định mới cho một cột hoặc loại bỏ giá trị mặc định cũ, tương ứng. Nếu mặc định cũ bị xóa và cột có thể là 08, mặc định mới là 08. Nếu cột không thể là 08, MySQL sẽ gán một giá trị mặc định như được mô tả trong Phần & NBSP; 11.6, kiểu dữ liệu có giá trị mặc định.Kể từ MySQL 8.0.23, 64 và 65 cho phép thay đổi khả năng hiển thị cột. Xem Phần & NBSP; 13.1.20.10, Cột vô hình.Các khóa và chỉ mục chính
66 thả khóa chính. Nếu không có khóa chính, xảy ra lỗi. Để biết thông tin về các đặc điểm hiệu suất của các khóa chính, đặc biệt là đối với các bảng 7, xem Phần & NBSP; 8.3.2, Tối ưu hóa khóa chính.Nếu biến hệ thống 68 được bật, cố gắng bỏ khóa chính sẽ tạo ra lỗi.Nếu bạn thêm 69 hoặc 70 vào bảng, MySQL sẽ lưu trữ nó trước bất kỳ chỉ số không liên quan nào để cho phép phát hiện các khóa trùng lặp càng sớm càng tốt.
71 loại bỏ một chỉ mục. Đây là phần mở rộng MySQL cho SQL tiêu chuẩn. Xem Phần & NBSP; 13.1.27, Câu lệnh Drop Drop Index. Để xác định tên chỉ mục, sử dụng chỉ mục hiển thị từ 85.SHOW INDEX FROM
. Một số công cụ lưu trữ cho phép bạn chỉ định loại chỉ mục khi tạo một chỉ mục. Cú pháp cho bộ xác định 73 là 74. Để biết chi tiết về 75, xem Phần & NBSP; 13.1.15, Tuyên bố Tạo Chỉ số. Vị trí ưa thích là sau danh sách cột. Mong đợi hỗ trợ sử dụng tùy chọn trước khi danh sách cột sẽ bị xóa trong bản phát hành MySQL trong tương lai.
76 Giá trị Chỉ định các tùy chọn bổ sung cho một chỉ mục. 75 là một trong những tùy chọn như vậy. Để biết chi tiết về các giá trị 76 cho phép, xem Phần & NBSP; 13.1.15, Tuyên bố Tạo Chỉ số.
79 đến 80 đổi tên một chỉ mục. Đây là phần mở rộng MySQL cho SQL tiêu chuẩn. Nội dung của bảng vẫn không thay đổi. 81 phải là tên của một chỉ mục hiện có trong bảng không bị hủy bởi cùng một câu lệnh 9. 80 là tên chỉ mục mới, không thể sao chép tên của một chỉ mục trong bảng kết quả sau khi các thay đổi đã được áp dụng. Không tên chỉ mục có thể là 84.Nếu bạn sử dụng 9 trên bảng 10, tất cả các chỉ mục không liên quan được tạo trong một lô riêng biệt (như đối với 87). Điều này sẽ làm cho 3 nhanh hơn nhiều khi bạn có nhiều chỉ mục.Đối với các bảng 10, cập nhật chính có thể được kiểm soát rõ ràng. Sử dụng 90 để bảo MySQL ngừng cập nhật các chỉ mục không liên quan. Sau đó sử dụng 91 để tạo lại các chỉ mục bị thiếu. 10 Thực hiện điều này với một thuật toán đặc biệt nhanh hơn nhiều so với việc chèn từng khóa một, vì vậy việc vô hiệu hóa các khóa trước khi thực hiện các hoạt động chèn số lượng lớn sẽ đưa ra tốc độ tăng tốc đáng kể. Sử dụng 93 yêu cầu đặc quyền 94 ngoài các đặc quyền được đề cập trước đó.Mặc dù các chỉ mục không liên quan đến bị vô hiệu hóa, nhưng chúng bị bỏ qua cho các câu lệnh như 95 và 96 mà nếu không sẽ sử dụng chúng.Sau một câu lệnh 9, có thể cần phải chạy 98 để cập nhật thông tin về Cardinality Index. Xem Phần & NBSP; 13.7.7.22, Báo cáo chỉ số hiển thị.Hoạt động 99 cho phép một chỉ mục được hiển thị hoặc vô hình. Một chỉ số vô hình không được sử dụng bởi trình tối ưu hóa. Sửa đổi khả năng hiển thị chỉ mục áp dụng cho các chỉ mục khác với các khóa chính (rõ ràng hoặc ẩn). Tính năng này là động cơ lưu trữ trung tính (được hỗ trợ cho bất kỳ động cơ). Để biết thêm thông tin, xem Phần & NBSP; 8.3.12, Chỉ số vô hình của Hồi giáo.Chìa khóa nước ngoài và các ràng buộc khácCác điều khoản 00 và 01 được hỗ trợ bởi các công cụ lưu trữ 7 và 28, thực hiện 04]] khóa nước ngoài [ 05] (...) Tài liệu tham khảo ... (...). Xem Phần & NBSP; 13.1.20.5, các ràng buộc khóa nước ngoài. Đối với các công cụ lưu trữ khác, các mệnh đề được phân tích cú pháp nhưng bị bỏ qua.Đối với 9, không giống như 0, 08 bỏ qua 05 nếu được cung cấp và sử dụng tên khóa lạ được tạo tự động. Là một cách giải quyết, bao gồm mệnh đề 10 để chỉ định tên khóa nước ngoài: 7Quan trọng MySQL âm thầm bỏ qua các thông số kỹ thuật nội tuyến 01, trong đó các tham chiếu được định nghĩa là một phần của đặc tả cột. MySQL chỉ chấp nhận các điều khoản 01 được xác định là một phần của đặc tả 00 riêng biệt.Cả MySQL Server và NDB đều hỗ trợ việc sử dụng 9 để thả các khóa nước ngoài: 8Thêm và thả một khóa ngoại trong cùng một câu lệnh 9 được hỗ trợ cho 16 nhưng không phải cho 17.Máy chủ nghiêm cấm các thay đổi đối với các cột khóa nước ngoài có khả năng gây mất tính toàn vẹn tham chiếu. Một cách giải quyết là sử dụng 18 trước khi thay đổi định nghĩa cột và 19 sau đó. Ví dụ về những thay đổi bị cấm bao gồm:
7 interprets foreign key constraint names that begin with the string “ 85_ibfk_” as internally generated names. Trước MySQL 8.0.16, 9 chỉ cho phép phiên bản giới hạn sau đây của cú pháp 33 adding-adding, được phân tích cú pháp và bỏ qua: 9Kể từ MySQL 8.0.16, 9 cho phép 33 ràng buộc cho các bảng hiện tại được thêm, bỏ hoặc thay đổi:
Các mệnh đề 42 và 43 là các phần mở rộng MySQL cho SQL tiêu chuẩn.Kể từ MySQL 8.0.19, 9 cho phép cú pháp tổng quát hơn (và tiêu chuẩn SQL) để giảm và thay đổi các ràng buộc hiện tại của bất kỳ loại nào, trong đó loại ràng buộc được xác định từ tên ràng buộc:
Tiêu chuẩn SQL chỉ định rằng tất cả các loại ràng buộc (khóa chính, chỉ mục duy nhất, khóa ngoại, kiểm tra) thuộc cùng một không gian tên. Trong MySQL, mỗi loại ràng buộc có không gian tên riêng trên mỗi lược đồ. Do đó, tên cho từng loại ràng buộc phải là duy nhất cho mỗi lược đồ, nhưng các ràng buộc của các loại khác nhau có thể có cùng tên. Khi nhiều ràng buộc có cùng tên, 49 và 50 không rõ ràng và xảy ra lỗi. Trong những trường hợp như vậy, cú pháp cụ thể ràng buộc phải được sử dụng để sửa đổi ràng buộc. Ví dụ: sử dụng 66 hoặc thả chìa khóa nước ngoài để thả khóa chính hoặc khóa nước ngoài.Nếu thay đổi bảng gây ra vi phạm ràng buộc 33 được thực thi, xảy ra lỗi và bảng không được sửa đổi. Ví dụ về các hoạt động xảy ra lỗi:
33 constraint names that begin with the string “ 85_chk_” to reflect the new table name. MySQL interprets 33 constraint names that begin with the string “ 85_chk_” as internally generated names. Thay đổi bộ ký tựĐể thay đổi bảng ký tự mặc định và tất cả các cột ký tự ( 94, 95, 96) thành tập ký tự mới, hãy sử dụng câu lệnh như thế này: 5Tuyên bố cũng thay đổi sự đối chiếu của tất cả các cột ký tự. Nếu bạn chỉ định Điều khoản không 68 để cho biết việc sử dụng đối chiếu nào, câu lệnh sử dụng đối chiếu mặc định cho bộ ký tự. Nếu đối chiếu này không phù hợp cho việc sử dụng bảng dự định (ví dụ: nếu nó sẽ thay đổi từ một đối chiếu nhạy cảm với trường hợp sang đối chiếu không nhạy cảm trường hợp), hãy chỉ định một đối chiếu rõ ràng.Đối với một cột có loại dữ liệu là 95 hoặc một trong các loại 96, 71 thay đổi loại dữ liệu khi cần thiết để đảm bảo rằng cột mới đủ dài để lưu trữ nhiều ký tự như cột gốc. Ví dụ, cột 96 có hai byte độ dài, lưu trữ độ dài byte của các giá trị trong cột, lên tới tối đa 65,535. Đối với cột 73 96, mỗi ký tự yêu cầu một byte duy nhất, do đó cột có thể lưu trữ tới 65.535 ký tự. Nếu cột được chuyển đổi thành 99, mỗi ký tự có thể yêu cầu tối đa 4 byte, với độ dài tối đa có thể là 4 × 65,535 = 262.140 byte. Độ dài đó không phù hợp với các byte chiều dài của cột 96, do đó MYSQL chuyển đổi loại dữ liệu thành 77, là loại chuỗi nhỏ nhất mà các byte có thể ghi lại giá trị là 262.140. Tương tự, một cột 95 có thể được chuyển đổi thành 77.Để tránh các thay đổi kiểu dữ liệu của loại vừa được mô tả, không sử dụng 80. Thay vào đó, sử dụng 87 để thay đổi các cột riêng lẻ. Ví dụ: 6Nếu bạn chỉ định 82, các cột 94, 95 và 96 được chuyển đổi thành các loại chuỗi nhị phân tương ứng của chúng ( 86, 87, 88). Điều này có nghĩa là các cột không còn có bộ ký tự và hoạt động 89 tiếp theo không áp dụng cho chúng.Nếu 90 là 76 trong hoạt động 92, ký tự được đặt tên bởi biến hệ thống 93 được sử dụng.Cảnh báo Hoạt động 94 chuyển đổi các giá trị cột giữa các bộ ký tự gốc và được đặt tên. Đây không phải là những gì bạn muốn nếu bạn có một cột trong một bộ ký tự (như 73) nhưng các giá trị được lưu trữ thực sự sử dụng một số ký tự không tương thích khác (như 99). Trong trường hợp này, bạn phải làm như sau cho từng cột như vậy:not
what you want if you have a column in one character set (like 73) but the stored values actually use some other, incompatible character set (like 99). In this case, you have to do the following for each such column: 7Lý do hoạt động này là không có chuyển đổi khi bạn chuyển đổi sang hoặc từ các cột 88.Để chỉ thay đổi bộ ký tự mặc định cho bảng, hãy sử dụng câu lệnh này:default character set for a table, use this statement: 8Từ 76 là tùy chọn. Bộ ký tự mặc định là tập ký tự được sử dụng nếu bạn không chỉ định tập ký tự cho các cột mà bạn thêm vào bảng sau (ví dụ: với 99).Khi biến hệ thống 00 được bật, đó là cài đặt mặc định, việc chuyển đổi bộ ký tự không được phép trên các bảng bao gồm cột chuỗi ký tự được sử dụng trong ràng buộc khóa nước ngoài. Giải pháp thay thế là vô hiệu hóa 00 trước khi thực hiện chuyển đổi bộ ký tự. Bạn phải thực hiện chuyển đổi trên cả hai bảng liên quan đến ràng buộc khóa nước ngoài trước khi kích hoạt lại 00. Nếu bạn kích hoạt lại 00 sau khi chỉ chuyển đổi một trong các bảng, hoạt động 04 hoặc 05 có thể làm hỏng dữ liệu trong bảng tham chiếu do chuyển đổi ngầm xảy ra trong các hoạt động này (BUG #45290, BUG #74816).
Nhập bảng InnodbMột bảng 7 được tạo trong không gian bảng cho mỗi bảng của riêng mình có thể được nhập từ bản sao lưu hoặc từ một phiên bản máy chủ MySQL khác bằng cách sử dụng các điều khoản 07 và 08. Xem Phần & NBSP; 15.6.1.3, Nhập khẩu bảng InnoDB.Thứ tự hàng cho bảng myisam
09 cho phép bạn tạo bảng mới với các hàng theo một thứ tự cụ thể. Tùy chọn này chủ yếu hữu ích khi bạn biết rằng bạn truy vấn các hàng theo một thứ tự nhất định hầu hết thời gian. Bằng cách sử dụng tùy chọn này sau những thay đổi lớn trong bảng, bạn có thể có được hiệu suất cao hơn. Trong một số trường hợp, nó có thể giúp việc sắp xếp MySQL dễ dàng hơn nếu bảng theo thứ tự bởi cột mà bạn muốn đặt hàng sau này.Ghi chú Bảng không duy trì theo thứ tự được chỉ định sau khi chèn và xóa.
09 Cú pháp cho phép một hoặc nhiều tên cột được chỉ định để sắp xếp, mỗi tên tùy chọn có thể được theo sau bởi 11 hoặc 12 để chỉ ra thứ tự sắp xếp tăng dần hoặc giảm dần. Mặc định là thứ tự tăng dần. Chỉ tên cột được cho phép là tiêu chí sắp xếp; Biểu thức tùy ý không được phép. Điều khoản này nên được đưa ra cuối cùng sau bất kỳ điều khoản nào khác.
09 không có ý nghĩa đối với các bảng 7 vì 7 luôn đặt hàng các hàng bảng theo chỉ mục phân cụm.Khi được sử dụng trên một bảng được phân vùng, chỉ các đơn đặt hàng 16 trong mỗi phân vùng.Tùy chọn phân vùng
17 biểu thị các tùy chọn có thể được sử dụng với các bảng được phân vùng để tái bản, để thêm, thả, loại bỏ, nhập, hợp nhất và phân chia phân vùng và để thực hiện bảo trì phân vùng.Có thể một câu lệnh 9 có chứa một điều khoản 19 hoặc 20 để bổ sung các thông số kỹ thuật thay đổi khác, nhưng điều khoản 21 hoặc 20 phải được chỉ định cuối cùng sau bất kỳ thông số kỹ thuật nào khác. 43, 44, 25, 26, 45, 47, 29, 30, 31 và 32 không thể kết hợp với các tùy chọn khác nhau.Để biết thêm thông tin về các tùy chọn phân vùng, xem Phần & NBSP; 13.1.20, Tuyên bố Tạo bảng và Phần & NBSP; 13.1.9.1, hoạt động phân vùng bảng thay đổi. Để biết thông tin về và ví dụ về các câu lệnh 34, xem Phần & NBSP; 24.3.3, Phân vùng trao đổi và các phần phụ với các bảng.
Làm cách nào để thêm một bảng mới vào một bảng hiện có?Một bản sao của một bảng hiện có có thể được tạo bằng cách sử dụng kết hợp câu lệnh CREATE TABLE và câu lệnh CHỌN. Bảng mới có cùng định nghĩa cột. Tất cả các cột hoặc các cột cụ thể có thể được chọn.using a combination of the CREATE TABLE statement and the SELECT statement. The new table has the same column definitions. All columns or specific columns can be selected.
Làm cách nào để thêm một bảng mới vào hai bảng trong MySQL?Trả lời: Tham gia hai bảng trong SQL có thể được thực hiện theo bốn cách chính: tham gia bên trong (trả về các hàng với các cột phù hợp), tham gia bên trái (tất cả các bản ghi trong bảng bên trái và các bản ghi phù hợp trong bảng bên phải), tham gia bên phải (tất cả các bản ghi trongBảng bên phải và các bản ghi phù hợp trong bảng bên trái) và Union (loại bỏ các bản sao).
Làm cách nào để tạo một bảng mới trong cơ sở dữ liệu hiện có trong MySQL Workbench?Tạo một bảng.. Mở rộng cơ sở dữ liệu mà bạn muốn tạo bảng .. Mục đầu tiên trong menu mở rộng phải là bảng..... Đặt tên cho bảng của bạn .. Bấm đúp vào phần trắng trống dưới tên bảng để thêm cột .. Xác định tên cột, kiểu dữ liệu và mọi ràng buộc mà nó có thể yêu cầu .. Làm cách nào để thêm một cột vào một bảng trong một bảng khác trong MySQL?Cú pháp.Cú pháp để thêm một cột vào bảng trong MySQL (sử dụng câu lệnh ALTER BẢNG) IS: ALTER BẢNG TABLE_NAME Thêm new_column_name cột_definition [Đầu tiên |Sau cột_name]; Table_Name.ALTER TABLE table_name ADD new_column_name column_definition [ FIRST | AFTER column_name ]; table_name. |