【问题标题】:I have a problem Error Code 1064 MySQL SHOW INDEX我有一个问题 错误代码 1064 MySQL SHOW INDEX
【发布时间】:2021-11-06 10:05:36
【问题描述】:

我正在做这个网页的一个例子

https://www.mysqltutorial.org/mysql-index/mysql-show-indexes/

由于错误代码:1064

,我无法运行查询

错误代码:1064。您的 SQL 语法有错误;检查 与您的 MySQL 服务器版本相对应的手册 'INVISIBLE,

附近使用的语法
CREATE TABLE contacts(
        contact_id  INT             AUTO_INCREMENT,
        first_name  VARCHAR(100)    NOT NULL,
        last_name   VARCHAR(100)    NOT NULL,
        email       VARCHAR(100),
        phone       VARCHAR(20),
        PRIMARY KEY(contact_id),
        UNIQUE(email),
        INDEX phone(phone) INVISIBLE,
        INDEX name(first_name, last_name) comment 'By first name and/or last name'
);

这是截图 enter image description here

这是我的版本

enter image description here

谢谢

【问题讨论】:

    标签: mysql


    【解决方案1】:

    INVISIBLE 仅存在于 Mysql 8 中

    所以当你有一些像 5.7 这样的旧版本时,不要使用它

    CREATE TABLE contacts(
            contact_id  INT             AUTO_INCREMENT,
            first_name  VARCHAR(100)    NOT NULL,
            last_name   VARCHAR(100)    NOT NULL,
            email       VARCHAR(100),
            phone       VARCHAR(20),
            PRIMARY KEY(contact_id),
            UNIQUE(email),
            INDEX phone(phone) ,
            INDEX name(first_name, last_name) comment 'By first name and/or last name'
    );
    

    为什么不使用mysql 8,但是INVISIBLE没有用,除了优化器会忽略它,如果你想模拟这个你强制另一个索引甚至更好IGNORE INDEX (phone)具有相同的效果

    【讨论】:

    • 如果我删除“INVISIBLE”,它将运行,但作为 MYSQL 的初学者,我想解决此问题并使用“INVISIBLE”运行以查看链接页面上显示的结果。
    • 但是我使用新的“模式”只是为了示例。
    • 为什么不使用mysql 8,但是invisble没有用,除了优化器会忽略它。所以你可以使用 IGNORE INDEX(电话)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 2013-05-17
    • 2018-10-13
    • 2015-06-20
    相关资源
    最近更新 更多