Tôi đang cố chèn một bản ghi vào bảng dim_channel bằng 0 cho khóa chính (int không dấu).mysql không thể chèn bản ghi với khóa chính chưa được gán là số
Mysql lệnh:
INSERT INTO dim_channel
set channel_id=0,name='Other',parent_channel_id=0,parent_channel_name='Other';
Kết quả:
select * from dim_channel;
+------------+-------+-------------------+---------------------+
| channel_id | name | parent_channel_id | parent_channel_name |
+------------+-------+-------------------+---------------------+
| 1 | Other | 0 | Other |
+------------+-------+-------------------+---------------------+
Xin lưu ý rằng channel_id có giá trị 1, không phải 0 như tôi mong đợi.
Bất kỳ ai biết tại sao điều này xảy ra.
Nhân tiện, tôi có thể cập nhật bản ghi dưới dạng: cập nhật kênh dim_channel channel_id = 0 trong đó channel_id = 1;
Chỉ muốn biết tại sao tôi không thể chèn bản ghi với channel_id = 0 ở địa điểm đầu tiên.
Cảm ơn rất nhiều.
====== lệnh MySQL để bạn có thể kiểm tra ====
- Tạo bảng
CREATE TABLE `dim_channel` (
`channel_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` char(80) DEFAULT NULL,
`parent_channel_id` int(10) unsigned NOT NULL DEFAULT '0',
`parent_channel_name` varchar(80) DEFAULT NULL,
PRIMARY KEY (`channel_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
- chèn bản ghi
INSERT INTO dim_channel set channel_id=0,name='Other',parent_channel_id=0,parent_channel_name='Other';
- xem kết quả
select * from dim_channel;
mysql giả định 0 có nghĩa là "cung cấp cho tôi ID tiếp theo" cho cột auto_increment. Nếu bạn thực sự thực sự muốn một 0 nơi nó không thuộc về, sau đó sử dụng một bản cập nhật sau khi chèn. –