2012-05-24 9 views
5

मैं अनेक निवेशन (एक बयान में) का उपयोग करने के कोशिश कर रहा हूँ में निहित मूलभूत मूल्यों डालने से MySQL की रोकथाम और मैं इस तालिका संरचनाअशक्त कॉलम नहीं

CREATE TABLE Scores 
(
    studentID varchar(50) not null, 
    score int 
) 
ENGINE = InnoDB 

मेरे क्वेरी है:

INSERT INTO Scores Values 
('Barry', 45), 
(NULL, 41), 
('Jones', 53) 

यह कथन (मुझे उम्मीद है) विफल होना चाहिए क्योंकि [StudentID] कॉलम पूर्ण स्वीकार नहीं करता है। समस्या MySQL खाली स्ट्रिंग ('') पंक्ति 2 में डाली गई थी ... और शेष को जारी रखने की अनुमति दें।

उत्तर

11

मुद्दा:

SET SQL_MODE='STRICT_ALL_TABLES' 

या my.cnf में [mysqld] के नीचे रखा

SQL_MODE='STRICT_ALL_TABLES' 

(तब MySQL पुनः आरंभ)।

+0

क्या होगा यदि मेरे पास MySQL पर वह विशेषाधिकार नहीं है ?? क्या यह मेरे PHP से करना संभव है? और, MySQL प्रलेखन का कहना है कि SQL_MODE बदलना डीबी के अन्य हिस्सों को प्रभावित कर सकता है (उदा। विभाजन, मास्टर + स्लेव ...) – codingbiz

+1

@tunmisefasipe: सभी उपयोगकर्ताओं के पास विशेषाधिकार (उनके वर्तमान सत्र के लिए) है। इसे 'PHP' से करने के लिए, बस 'mysql_query ("SET SQL_MODE =' STRICT_ALL_TABLES '")' या उस लाइब्रेरी में उसका एनालॉग जारी करें जिसका आप उपयोग कर रहे हैं। हां, यह डेटाबेस के अन्य हिस्सों को प्रभावित कर सकता है। – Quassnoi

+0

धन्यवाद @Quassnoi मैं इसे आज़माउंगा और देखूँगा कि चीजें कैसे जाती हैं – codingbiz

संबंधित मुद्दे