【问题标题】:find out if an index exists mysql [closed]找出索引是否存在mysql [关闭]
【发布时间】:2013-06-03 09:52:24
【问题描述】:

我有一张桌子:

    CREATE TABLE IF NOT EXISTS `agents` (
    `idx` int(11) NOT NULL AUTO_INCREMENT,
    `newConfig` tinyint(1) NOT NULL DEFAULT '0',
    `agent_id` char(20) NOT NULL,
    `time` int(11) NOT NULL,
    `status` varchar(15) NOT NULL,
    `agent_ip` char(15) NOT NULL,
    `FilterExpression` varchar(1024) NOT NULL,
    `agent_alias` char(128) NOT NULL,
    `agent_type` char(128) NOT NULL,
    `ATMSIP` varchar(15) NOT NULL,
    `ATMSPort` varchar(5) NOT NULL,
    `MaxHeadersLength` varchar(10) NOT NULL,
    `MaxGetParamsLength` varchar(10) NOT NULL,
    `MaxPostLength` varchar(10) NOT NULL,
    `StatusInterval` int(11) NOT NULL,
    `CookieExpireTime` int(11) NOT NULL,
    `ConcurrentSessions` varchar(10) NOT NULL,
    `MessagesQueueSize` varchar(10) NOT NULL,
    `owner_user` char(20) NOT NULL,
    `owner_group` char(20) NOT NULL,
    `msg_id` bigint(20) NOT NULL,
    `NetworkInterface` char(64) NOT NULL,
    `fingerprint_headers` varchar(4096) NOT NULL,
    PRIMARY KEY (`idx`),
    UNIQUE KEY `agent_id` (`agent_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

现在我想通过执行以下操作来验证是否添加了索引 agent_id(以防表已存在因此未创建):

if not exists ( SELECT INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE
        `TABLE_SCHEMA` = 'Telepath-NewSchema' AND
        `TABLE_NAME` = `agents` AND `INDEX_NAME` = `agent_id`)
    then 
        ALTER IGNORE TABLE `agents` ADD UNIQUE `agent_id` (`agent_id`);
end if;

但是当我运行脚本时,我得到: “where 子句”中的未知列“代理”

为什么认为代理是一列??

谢谢

【问题讨论】:

    标签: mysql indexing


    【解决方案1】:

    `agents` 应该是'agents''agent_id' 也一样。

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 2020-10-13
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      相关资源
      最近更新 更多