क्या किसी को पता है कि इस MYSQL 5.0 सिंटैक्स में क्या गलत है?

CREATE TABLE IF NOT EXISTS target (
  _id int(11) NOT NULL AUTO_INCREMENT,
  time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  map_id int(11) DEFAULT NULL,
  left int(11) DEFAULT NULL,
  top int(11) DEFAULT NULL,
  status tinyint(1) NOT NULL,
  temperature int(11) DEFAULT NULL,
  humidity float DEFAULT NULL,
  lum int(11) DEFAULT NULL,
  PRIMARY KEY (_id),
  FOREIGN KEY (map_id) REFERENCES map(id) ON DELETE CASCADE
)

मैं आपको त्रुटि दिखाऊंगा:

आपको अपने SQL सिंटैक्स में त्रुटि है; लाइन 5 पर 'बाएं इंटेगर डिफॉल्ट न्यूल, टॉप इंटेगर डिफॉल्ट न्यूल, स्टेटस टिनिंट (1) नॉट' के पास उपयोग करने के लिए सही सिंटैक्स के लिए आपके MySQL सर्वर संस्करण से मेल खाने वाले मैनुअल की जांच करें।

1
Aerox 29 पद 2011, 21:30

3 जवाब

सबसे बढ़िया उत्तर

क्योंकि left एक MySQL 5.0 आरक्षित शब्द. साथ ही, भले ही आप फ़ील्ड नाम से बच सकते हैं, तालिका परिभाषा में आरक्षित शब्दों का उपयोग करना कभी भी एक अच्छा विचार नहीं है।

2
Crontab 29 पद 2011, 21:44

आपको इसे इस तरह लिखना होगा:

CREATE TABLE IF NOT EXISTS target (
  _id int(11) NOT NULL AUTO_INCREMENT,
  time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  map_id int(11) DEFAULT NULL,
  `left` int(11) DEFAULT NULL,
  top int(11) DEFAULT NULL,
  status tinyint(1) NOT NULL,
  temperature int(11) DEFAULT NULL,
  humidity float DEFAULT NULL,
  lum int(11) DEFAULT NULL,
  PRIMARY KEY (_id),
  FOREIGN KEY (map_id) REFERENCES map(id) ON DELETE CASCADE
)

बाईं पंक्ति में `` (बैकटिक्स) वर्णों को देखें!

2
macjohn 29 पद 2011, 21:47

आप आरक्षित शब्दों को फ़ील्ड नामों के रूप में उपयोग कर रहे हैं। आप ऐसा कर सकते हैं, लेकिन फिर आपको उनसे ठीक से बचना होगा, जैसे:

CREATE TABLE IF NOT EXISTS target (
  `_id` int(11) NOT NULL AUTO_INCREMENT,
  `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `map_id` int(11) DEFAULT NULL,
  `left` int(11) DEFAULT NULL,
  `top` int(11) DEFAULT NULL,
  `status` tinyint(1) NOT NULL,
  `temperature` int(11) DEFAULT NULL,
  `humidity` decimal(13,2) DEFAULT NULL,
  `lum` int(11) DEFAULT NULL,
  PRIMARY KEY (_id),
  FOREIGN KEY (map_id) REFERENCES map(id) ON DELETE CASCADE
)

मेरी सलाह होगी कि आरक्षित नामों से बचें।

0
Bjoern 29 पद 2011, 21:35