Cột mà tôi dự định đặt làm khóa chính là của văn bản trong phpmyadmin, nó đã cho tôi một thông báo lỗi, khóa chính không thể được đặt! Và tôi không muốn thay đổi nó thành int. Làm sao tôi có thể giải quyết việc này?
Tôi chưa nhập bất kỳ giá trị nào hoặc liên hệ bất kỳ bảng nào khác trên bảng này.
Dharman ♦♦
28.5K21 Huy hiệu vàng78 Huy hiệu bạc129 Huy hiệu đồng21 gold badges78 silver badges129 bronze badges
Đã hỏi ngày 5 tháng 10 năm 2013 lúc 13:34Oct 5, 2013 at 13:34
Bạn có thể đặt một khóa chính trên cột văn bản. Trong phpmyadmin, hiển thị cấu trúc của bảng của bạn, nhấp vào các chỉ mục, sau đó yêu cầu tạo chỉ mục trên một cột. Sau đó chọn chính, chọn cột văn bản của bạn, nhưng bạn phải đặt một chiều dài đủ lớn để nó duy nhất.
Đã trả lời ngày 5 tháng 10 năm 2013 lúc 20:53Oct 5, 2013 at 20:53
Marc Delislemarc DelisleMarc Delisle
8.7933 huy hiệu vàng28 Huy hiệu bạc29 Huy hiệu đồng3 gold badges28 silver badges29 bronze badges
3
MySQL có thể lập chỉ mục các ký tự X đầu tiên của cột, nhưng loại văn bản có độ dài thay đổi để MySQL không thể đảm bảo tính duy nhất của cột. Nếu bạn vẫn muốn cột văn bản, hãy sử dụng varchar.
Đã trả lời ngày 5 tháng 10 năm 2013 lúc 13:42Oct 5, 2013 at 13:42
MihaimihaiMihai
25.5K7 Huy hiệu vàng66 Huy hiệu bạc80 Huy hiệu Đồng7 gold badges66 silver badges80 bronze badges
0
Bạn không thể đặt trường có "văn bản" loại dữ liệu. Chỉ vì điều đó bạn đang gặp lỗi này. Cố gắng thay đổi loại dữ liệu với int
Đã trả lời ngày 5 tháng 10 năm 2013 lúc 13:39Oct 5, 2013 at 13:39
PhploverphploverPHPLover
7.61137 Huy hiệu vàng101 Huy hiệu bạc190 Huy hiệu Đồng37 gold badges101 silver badges190 bronze badges
0
Bạn có thể xem cột chỉ mục bên dưới nơi bạn tìm thấy khóa chính mặc định được đặt. Nếu nó không được đặt hoặc bạn muốn đặt bất kỳ biến nào khác làm khóa chính thì có một hộp thoại bên dưới để tạo một chỉ mục yêu cầu số cột, bằng cách nào đó bạn có thể tạo một hộp mới hoặc chỉnh sửa một chỉ mục hiện có. Cái hiện tại hiển thị một nút chỉnh sửa, bạn có thể đi và chỉnh sửa nó và bạn đã hoàn thành lưu nó và bạn đã sẵn sàng để đi
Đã trả lời ngày 1 tháng 10 năm 2017 lúc 13:32Oct 1, 2017 at 13:32
Tiết lộ: Bài viết này có thể chứa các liên kết liên kết và bất kỳ doanh số nào được thực hiện thông qua các liên kết như vậy sẽ thưởng cho chúng tôi một khoản hoa hồng nhỏ, mà không phải trả thêm chi phí cho bạn. Đọc thêm về công bố liên kết ở đây.
Thậm chí tự hỏi làm thế nào để đặt hỗn hợp hai hoặc nhiều cột/trường cơ sở dữ liệu MySQL làm khóa chính trong phpmyadmin vì không có liên kết trực tiếp trong quá trình tạo bảng. Các bài viết này với cho bạn cách thiết lập khóa chính tổng hợp trong phpmyadmin.composite primary key in phpMyAdmin.
Đặt khóa chính tổng hợp trong phpmyadminNhư bạn có thể thấy trong hình trên, chúng tôi có bảng sau đây, nơi chúng tôi muốn đặt các trường
1 vàCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
2 & nbsp; làm chính tổng hợp để tôi đã tạo bảng trên mà không cần gán tăng tự động cho cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
3 vì việc tăng tự động cột sẽ được đặt Là khóa chính mà chúng tôi không muốn.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Chuyển đến tab Cấu trúc bảng và chọn tất cả các cột mà bạn muốn đặt làm kết hợp các phím chính và từ các tùy chọn ngang ở dưới cùng [ngay phía trên đường viền], bấm vào chính sẽ đặt chúng thành phím chính tổng hợp. Bạn có thể xác minh điều đó như sau khi nhấp vào, cả hai cột sẽ được nhấn mạnh trong tên của họ.Primary which will set them as composite primary key. You can verify that as after clicking, both column will have underline in their names.
Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng ràng buộc khóa chính của MySQL để tạo khóa chính cho bảng.: in this tutorial, you will learn how to use MySQL primary key constraint to create the primary key for a table.
Giới thiệu về khóa chính của MySQL
Một khóa chính là một cột hoặc một tập hợp các cột xác định duy nhất từng hàng trong bảng. & NBSP; Khóa chính tuân theo các quy tắc sau:
- Một khóa chính phải chứa các giá trị duy nhất. Nếu khóa chính bao gồm nhiều cột, sự kết hợp của các giá trị trong các cột này phải là duy nhất.
- Một cột khóa chính không thể có giá trị
4. Bất kỳ nỗ lực nào để chèn hoặc cập nhật các cột khóa chính lên chính sẽ dẫn đến lỗi. Lưu ý rằng MySQL ngầm thêm ràng buộc
Code language: SQL [Structured Query Language] [sql]CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
6 vào các cột khóa chính.
Code language: SQL [Structured Query Language] [sql]CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
- Một bảng có thể có một khóa duy nhất một khóa chính.
Vì MySQL hoạt động nhanh hơn với các số nguyên, loại dữ liệu của cột khóa chính phải là số nguyên, ví dụ:
7Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
8. Và bạn nên đảm bảo chắc chắn rằng phạm vi giá trị của loại số nguyên cho khóa chính là đủ để lưu trữ tất cả các hàng có thể mà bảng có thể có.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Một cột khóa chính thường có thuộc tính
9 tự động tạo số nguyên tuần tự bất cứ khi nào bạn chèn một hàng mới vào bảng.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Khi bạn xác định khóa chính cho bảng, MySQL sẽ tự động tạo một chỉ mục gọi là
0.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
Ví dụ MySQL CREATE TABLE table_name [
primary_key_column datatype,
... ,
PRIMARY KEY[primary_key_column]
];
Code language: SQL [Structured Query Language] [sql]
1
CREATE TABLE table_name [
primary_key_column datatype,
... ,
PRIMARY KEY[primary_key_column]
];
Ràng buộc
1 cho phép bạn xác định khóa chính của bảng khi bạn tạo hoặc thay đổi bảng.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
1] Xác định ràng buộc CREATE TABLE table_name [
primary_key_column datatype,
... ,
PRIMARY KEY[primary_key_column]
];
Code language: SQL [Structured Query Language] [sql]
1 trong CREATE TABLE table_name [
primary_key_column datatype,
... ,
PRIMARY KEY[primary_key_column]
];
Code language: SQL [Structured Query Language] [sql]
4
CREATE TABLE table_name [
primary_key_column datatype,
... ,
PRIMARY KEY[primary_key_column]
];
CREATE TABLE table_name [
primary_key_column datatype,
... ,
PRIMARY KEY[primary_key_column]
];
Thông thường, bạn xác định khóa chính cho một bảng trong câu lệnh ____ 24 & nbsp;
Nếu khóa chính có một cột, bạn có thể sử dụng ràng buộc
1 làm ràng buộc cột:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column datatype PRIMARY KEY, ... ];
Khi khóa chính có nhiều hơn một cột, bạn phải sử dụng ràng buộc
1 làm ràng buộc bảng.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Trong cú pháp này, bạn tách các cột trong
8 bằng dấu phẩy [,].Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
Có thể sử dụng ràng buộc bảng
1 khi khóa chính có một cột:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
Ví dụ sau tạo một bảng có tên
0 có khóa chính là cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE users[ user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR[40], password VARCHAR[255], email VARCHAR[255] ];
1:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE users[ user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR[40], password VARCHAR[255], email VARCHAR[255] ];
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE users[ user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR[40], password VARCHAR[255], email VARCHAR[255] ];
Câu lệnh này tạo ra bảng
2 có ràng buộcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE users[ user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR[40], password VARCHAR[255], email VARCHAR[255] ];
1 là ràng buộc bảng:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE roles[ role_id INT AUTO_INCREMENT, role_name VARCHAR[50], PRIMARY KEY[role_id] ];
Trong trường hợp khóa chính bao gồm nhiều cột, bạn phải chỉ định chúng ở cuối câu lệnh
4 & nbsp; Bạn đặt một danh sách được phân tách bằng dấu phẩy các cột khóa chính bên trong dấu ngoặc đơn tuân theo các từ khóaCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
1 & NBSP;Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
Ví dụ sau đây tạo bảng
6 có khóa chính bao gồm hai cột:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE users[ user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR[40], password VARCHAR[255], email VARCHAR[255] ];
1 vàCode language: SQL [Structured Query Language] [sql]
CREATE TABLE users[ user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR[40], password VARCHAR[255], email VARCHAR[255] ];
8. Nó định nghĩa ràng buộcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE users[ user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR[40], password VARCHAR[255], email VARCHAR[255] ];
1 là ràng buộc bảng:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
Lưu ý rằng câu lệnh cũng tạo ra hai ràng buộc khóa nước ngoài.
2] Xác định các ràng buộc CREATE TABLE table_name [
primary_key_column datatype,
... ,
PRIMARY KEY[primary_key_column]
];
Code language: SQL [Structured Query Language] [sql]
1 bằng cách sử dụng CREATE TABLE roles[
role_id INT AUTO_INCREMENT,
role_name VARCHAR[50],
PRIMARY KEY[role_id]
];
Code language: SQL [Structured Query Language] [sql]
1
CREATE TABLE table_name [
primary_key_column datatype,
... ,
PRIMARY KEY[primary_key_column]
];
CREATE TABLE roles[
role_id INT AUTO_INCREMENT,
role_name VARCHAR[50],
PRIMARY KEY[role_id]
];
Nếu một bảng, vì một số lý do, không có khóa chính, bạn có thể sử dụng
1Statement để thêm khóa chính vào bảng như sau:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE roles[ role_id INT AUTO_INCREMENT, role_name VARCHAR[50], PRIMARY KEY[role_id] ];
Code language: SQL [Structured Query Language] [sql]
ALTER TABLE table_name ADD PRIMARY KEY[column_list];
Ví dụ sau đây thêm cột
3 vào khóa chính.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Đầu tiên, tạo bảng
4 mà không có khóa chính.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE roles[ role_id INT AUTO_INCREMENT, role_name VARCHAR[50], PRIMARY KEY[role_id] ];
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE pkdemos[ id INT, title VARCHAR[255] NOT NULL ];
Thứ hai, thêm một khóa chính vào bảng
4 bằng câu lệnhCode language: SQL [Structured Query Language] [sql]
CREATE TABLE roles[ role_id INT AUTO_INCREMENT, role_name VARCHAR[50], PRIMARY KEY[role_id] ];
1:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE roles[ role_id INT AUTO_INCREMENT, role_name VARCHAR[50], PRIMARY KEY[role_id] ];
Code language: SQL [Structured Query Language] [sql]
ALTER TABLE pkdemos ADD PRIMARY KEY[id];
Nếu bạn thêm một khóa chính vào một bảng đã có dữ liệu. Dữ liệu trong [các] cột, sẽ được bao gồm trong khóa chính, phải là duy nhất và không null.
& nbsp; ________ 21 so với CREATE TABLE roles[
role_id INT AUTO_INCREMENT,
role_name VARCHAR[50],
PRIMARY KEY[role_id]
];
Code language: SQL [Structured Query Language] [sql]
8 so với CREATE TABLE roles[
role_id INT AUTO_INCREMENT,
role_name VARCHAR[50],
PRIMARY KEY[role_id]
];
Code language: SQL [Structured Query Language] [sql]
9
CREATE TABLE roles[
role_id INT AUTO_INCREMENT,
role_name VARCHAR[50],
PRIMARY KEY[role_id]
];
CREATE TABLE roles[
role_id INT AUTO_INCREMENT,
role_name VARCHAR[50],
PRIMARY KEY[role_id]
];
9 là từ đồng nghĩa với & nbsp; ________ 51. Bạn sử dụng & nbsp; ________ 49 khi bạn muốn tạo một chỉ mục cho một cột hoặc một tập hợp các cột không phải là một phần của khóa chính hoặc khóa duy nhất.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE roles[ role_id INT AUTO_INCREMENT, role_name VARCHAR[50], PRIMARY KEY[role_id] ];
Chỉ số
3 đảm bảo rằng các giá trị trong một cột phải là duy nhất. Không giống như chỉ mụcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
0, MySQL cho phép các giá trịCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name [ primary_key_column datatype, ... , PRIMARY KEY[primary_key_column] ];
4 trong chỉ mụcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
3. Ngoài ra, một bảng có thể có nhiều chỉ mụcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
3.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
Giả sử rằng
8 vàCode language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
9 của người dùng trong bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
0 phải là duy nhất. Để thực thi các quy tắc, bạn có thể xác định các chỉ mụcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE users[ user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR[40], password VARCHAR[255], email VARCHAR[255] ];
3 cho các cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
8 vàCode language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
9 như sau & nbsp; câu lệnh:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
Thêm A & NBSP; ________ 53 Chỉ mục cho cột
9:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
Code language: SQL [Structured Query Language] [sql]
ALTER TABLE users ADD UNIQUE INDEX username_unique [username ASC] ;
Thêm A & NBSP; ________ 53 Chỉ mục cho cột
8:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE user_roles[ user_id INT, role_id INT, PRIMARY KEY[user_id,role_id], FOREIGN KEY[user_id] REFERENCES users[user_id], FOREIGN KEY[role_id] REFERENCES roles[role_id] ];
0Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Trong hướng dẫn này, bạn đã học được cách tạo khóa chính cho bảng mới hoặc thêm khóa chính vào bảng hiện có.
Hướng dẫn này có hữu ích không?