निम्नलिखित एसक्यूएल टेबल परिभाषा को मेरे MYSQL डेटाबेस से तालिका विवरण बनाने में से एक को चित्रित किया गया है जो मेरी कंपनी के पूर्व डेवलपर द्वारा विकसित किया गया है।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 ;
वहाँ में, बयान price
डबल शून्य डिफ़ॉल्ट शून्य पर देखने
आम तौर पर मैं
price
डबल शून्य उपयोग कर रहा हूँ;
यदि मैं उस कॉलम को नल मान स्वीकार करने के लिए सक्षम करना चाहता हूं।
तो इन 3 कथनों के बीच अंतर क्या हैं?
1) price
डबल न्यूल;
2) price
डबल डिफॉल्ट नल;
3) price
डबल पूर्ण डेफॉल्ट नल;
बहुत बहुत धन्यवाद।
"* कीमत एक डबल है और शून्य नहीं हो सकती * * दूसरी अभिव्यक्ति गलत है। यदि 'NULL' छोड़ा गया है, तो 'NULL' माना जाता है (मैन्युअल से मेरा उद्धरण देखें) –
@EJP मुझे लगता है कि प्रत्येक कथन बराबर है। मैं अभी भी इसे निकालने नहीं कर सकता। :) – Sylar
@ सिलार वे * * बराबर हैं। – EJP