mysql 中的 'KEY' 有什么用,它不允许我在 phpmyadmin 中编辑记录
what is use of 'KEY' in mysql , it is not allowing me edit record in phpmyadmin
这是我的数据库映射 table 定义,
你可以试试这个,当我创建这个 table 并向其中添加一些记录时,它不允许我通过 phpmyadmin 编辑或删除记录,尽管通过查询它应该是可能,
CREATE TABLE IF NOT EXISTS `map2` (
`map_table_a` varchar(25) DEFAULT NULL,
`map_id_a` int(10) DEFAULT NULL,
`map_table_b` varchar(25) DEFAULT NULL,
`map_id_b` int(10) DEFAULT NULL,
KEY `map_table_b` (`map_table_b`,`map_id_b`),
KEY `map_table_a` (`map_table_a`,`map_id_a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我不知道这种行为背后的原因
根据您的 phpMyAdmin 版本,您应该会看到此错误消息:
虽然您有 KEY
列,但您没有定义 PRIMARY
或 UNIQUE
列。这就是 phpMyAdmin 无法编辑您的数据的原因 - 它无法确保它正在编辑正确的行。
建议的解决方案:将以下内容添加到您的 table 定义中,最好作为第一列:
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
这是我的数据库映射 table 定义, 你可以试试这个,当我创建这个 table 并向其中添加一些记录时,它不允许我通过 phpmyadmin 编辑或删除记录,尽管通过查询它应该是可能,
CREATE TABLE IF NOT EXISTS `map2` (
`map_table_a` varchar(25) DEFAULT NULL,
`map_id_a` int(10) DEFAULT NULL,
`map_table_b` varchar(25) DEFAULT NULL,
`map_id_b` int(10) DEFAULT NULL,
KEY `map_table_b` (`map_table_b`,`map_id_b`),
KEY `map_table_a` (`map_table_a`,`map_id_a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我不知道这种行为背后的原因
根据您的 phpMyAdmin 版本,您应该会看到此错误消息:
虽然您有 KEY
列,但您没有定义 PRIMARY
或 UNIQUE
列。这就是 phpMyAdmin 无法编辑您的数据的原因 - 它无法确保它正在编辑正确的行。
建议的解决方案:将以下内容添加到您的 table 定义中,最好作为第一列:
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY