MySQL कार्यक्षेत्र: क्वेरी में त्रुटि(1064): पंक्ति 1 पर 'VISIBLE' के पास सिंटैक्स त्रुटि




mysql-workbench (2)

कार्यक्षेत्र में: मॉडल> ​​मॉडल विकल्प ...> MySQL => अनचेक करें "वैश्विक सेटिंग्स से डिफ़ॉल्ट का उपयोग करें

किसी भी विचार क्यों नीचे VISIBLE एक समस्या पैदा कर रहा है?

CREATE TABLE IF NOT EXISTS `setting` (
  `uuid` INT(10) NOT NULL,
  `type` VARCHAR(255) NOT NULL,
  `code` VARCHAR(255) NOT NULL COMMENT 'An unique name.',
  `value` MEDIUMTEXT NULL DEFAULT NULL,
  `comment` LONGTEXT NULL DEFAULT NULL,
  `created_on` INT UNSIGNED NOT NULL,
  `updated_on` INT UNSIGNED NOT NULL,
  PRIMARY KEY (`uuid`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8;

CREATE UNIQUE INDEX `name_UNIQUE` ON `setting` (`code` ASC) VISIBLE;

CREATE UNIQUE INDEX `uuid_UNIQUE` ON `setting` (`uuid` ASC) VISIBLE;

त्रुटियाँ:

setting पर UNIQUE INDEX name_UNIQUE बनाएँ ( code ASC) क्वेरी में त्रुटि (1064): पंक्ति 1 में 'दृश्य' के पास सिंटैक्स त्रुटि

setting पर UNIQUE INDEX uuid_UNIQUE बनाएँ ( uuid ASC) क्वेरी में uuid_UNIQUE त्रुटि (1064): पंक्ति 1 में 'VISIBLE' के पास सिंटैक्स त्रुटि

कोई त्रुटि नहीं अगर मैं VISIBLE हटा दूं लेकिन MySQL कार्यक्षेत्र 8.0.12 ऑटो उत्पन्न करता है। मैं MySQL कार्यक्षेत्र को ऐसा करने से कैसे रोक सकता हूं?

मेरे Ubuntu में मेरी MySQL जानकारी 18.04:

MySQL संस्करण: 5.7.23-0ubuntu0.18.04.1 PHP एक्सटेंशन MySQLi के माध्यम से


यहाँ समस्या अलग MySQL सर्वर संस्करणों में वाक्यविन्यास में अंतर है। ऐसा लगता है कि MySQL वर्कबेंच 8.0.12 MySQL सर्वर संस्करण 8.0 के लिए ऑटो-जनरेट क्रिएट यूनिसेक्स स्टेटमेंट है।

MySQL सर्वर 8.0 डॉक्स से , CREATE INDEX का सिंटैक्स है:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option:
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}  /* Notice the option of VISIBLE / INVISIBLE */

index_type:
  USING {BTREE | HASH}

हालाँकि, {VISIBLE | INVISIBLE} का यह विकल्प {VISIBLE | INVISIBLE} {VISIBLE | INVISIBLE} MySQL सर्वर 5.7 में उपलब्ध नहीं है। Docs :

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part:
    col_name [(length)] [ASC | DESC]

index_option:
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'   /* No option of VISIBLE / INVISIBLE */

index_type:
    USING {BTREE | HASH}

यदि आप MySQL के नवीनतम संस्करण में अपग्रेड नहीं कर रहे हैं; आप VISIBLE / INVISIBLE इंडेक्स के साथ ऑटो-जेनरेशन की इस सुविधा को अक्षम कर सकते हैं:

MySQL कार्यक्षेत्र में:

के लिए जाओ:

संपादित करें> वरीयताएँ> मॉडलिंग> MySQL।

फिर, "डिफ़ॉल्ट लक्ष्य MySQL संस्करण" को 5.7 पर सेट करें

नीचे दिए गए स्क्रीनशॉट की जाँच करें:







mysql-workbench