Theo định nghĩa bảng sql được minh họa một trong những câu lệnh tạo bảng từ cơ sở dữ liệu MYSQL của tôi được phát triển bởi một nhà phát triển cũ của công ty tôi.NULL vs DEFAULT NULL và NULL DEFAULT NULL trong tạo cột MYSQL?
DROP TABLE IF EXISTS `classifieds`.`category_vehicles`;
CREATE TABLE `classifieds`.`category_vehicles`(
`adv_id_ref` BIGINT UNSIGNED NOT NULL,
`category_id_ref` TINYINT UNSIGNED NOT NULL,
`forsale_status` TINYINT (1) NOT NULL,
`vehicle_type_id_ref` TINYINT UNSIGNED NOT NULL,
`price` DOUBLE NULL DEFAULT NULL,
PRIMARY KEY (`adv_id_ref`)
) ENGINE = INNODB CHARSET = latin1 COLLATE = latin1_swedish_ci ;
Trong đó nhìn vào báo cáo kết quả price
DOUBLE NULL DEFAULT NULL,
Bình thường, tôi đang sử dụng
price
NULL DOUBLE;
nếu tôi muốn bật cột đó để chấp nhận giá trị NULL.
Vậy sự khác nhau giữa 3 câu lệnh này là gì?
1) price
DOUBLE NULL;
2) price
DOUBLE DEFAULT NULL;
3) price
DOUBLE NULL DEFAULT NULL;
Cảm ơn bạn rất nhiều.
"* giá là gấp đôi và không thể rỗng *" cho biểu thức thứ hai là sai. Nếu 'NULL' được bỏ qua,' NULL' được giả định (xem báo giá của tôi từ hướng dẫn) –
@EJP với tôi có vẻ như mọi câu lệnh đều bình đẳng. Tôi vẫn không thể giải nén điều này. :) – Sylar
@Sylar Họ * bằng *. – EJP