Это не вопрос, а самосозданная проблема / вопрос и решение, которые я нашел работающими. Я думал, что это будет достойная любезность, потому что не было полного рабочего решения, которое я мог бы найти.
Ошибка, сгенерированная в phpMyAdmin:
«В этой таблице нет уникального столбца. Параметры редактирования Grid, Checkbox, Edit, Copy и Delete недоступны».
В зависимости от вашего точного сценария есть несколько рабочих решений.
Например, до тех пор, пока все поля вашего ИИ или Уникального идентификатора уникальны, вы можете просто изменить таблицу и убедиться, что это ключ Первичного и установить уникальное значение.
Я решил это с помощью этого решения на одной из моих таблиц.
Другая таблица имела несколько значений AI int, которые были полем Primary, но было несколько значений одного и того же типа.
Простым решением для этого было просто добавить столбец в конец таблицы как уникальный AI Int. В основном все MySQL говорит, что для каждой строки требуется уникальное значение для различения строк.
Надеюсь, это было полезно.
Я столкнулся с этой проблемой.
Причина в том, что ваша таблица не имеет поля первичного ключа .
И у меня есть простое решение. Задайте поле для первичного ключа для определенной заявки, соответствующей вашей бизнес-логике.
Например, у меня есть база данных thesis_db
и поле thesis_id
, я thesis_id
кнопку Primary (значок ключа), чтобы установить thesis_id
в поле первичного ключа:
Это не ошибка. PhpMyAdmin просто информирует вас о том, что в вашем результирующем наборе нет уникального столбца идентификатора. В зависимости от типа отправленного запроса это желаемое поведение.
Это не MySQL, который говорит, что ему нужен уникальный идентификатор, если какая-либо комбинация столбцов в вашем результирующем наборе уникальна, значения этих столбцов могут использоваться в запросе UPDATE или DELETE. Это phpMyAdmin, в котором говорится, что у него недостаточно информации, чтобы предлагать вам флажки и кнопки, которые вы обычно видите в результирующем наборе с уникальным идентификатором.
Мое дело другое. Эта проблема специфична только для PHPMyAdmin. Я загрузил пару других инструментов администратора (Adminer, MySQLWorkbench, HeidiSQL и т. Д.), И тот же db отлично работает во всех этих случаях.
У меня есть все индексы, первичный ключ и уникальные ключи, определенные и все еще получающие ошибку. Я получаю это после того, как я обновился до MySQL 5.6 (не было похоже на предыдущие версии).
Оказывается, PMA имеет проблемы с именами таблиц в капитале. PMA не может распознавать ключи с именами таблиц капитала. Как только я изменил их на маленький ( ALTER TABLE mytable ENGINE=INNODB
– я использую INNODB – делает это для каждой таблицы, не меняя ничего), я смог нормально получить доступ. Я нахожусь в системе Windows с UniformServer.
Просто создайте новый столбец, установите Name
в любое A_I
для вас время, установите значение « Type
в INT
и установите флажок « A_I
.
A_I
означает AUTO_INCREMENT
, что по существу означает, что порядковые номера назначаются автоматически в этом новом столбце (см. Ниже).
column1 | column2 | id ----------------------- value | value | 1 ----------------------- value | value | 2 ----------------------- value | value | 3 ----------------------- value | value | 4
Этот столбец, по сути, служит ссылкой для phpMyAdmin для удаления строк. Если необходимо, нажмите уникальную кнопку для этого нового столбца, хотя это произошло автоматически для меня. После выполнения вышеуказанных шагов вы больше не должны иметь сообщение об ошибке и должны появляться кнопки для редактирования строк в phpMyAdmin!
В моем случае ошибка произошла в phpmyadmin версии 4.5.1, когда я установил lower_case_table_names = 2 и имел имя таблицы с прописными буквами. В таблице был установлен первичный ключ для автоматического увеличения, но все еще показывал ошибку. Проблема остановилась, когда я изменил имя таблицы на все строчные.
Я недавно получил ту же проблему, и после поиска дубликатов я смог исправить это, просто установив (отсутствует) первичный ключ в таблице. Надеюсь, это поможет
Этот вопрос помог мне определить проблему, почему phpMyAdmin отказал мне grid-edit-etc. на некоторых таблицах. Я просто забыл объявить свой первичный ключ и наблюдал за ним в моем решении «Почему, черт возьми, этот стол отличается от его соседей» ?
Я просто хотел отреагировать на следующее в OP-ответе:
Другая таблица имела несколько значений AI int, которые были полем Primary, но было несколько значений одного и того же типа.
Простым решением для этого было просто добавить столбец в конец таблицы как уникальный AI Int. В основном все MySQL говорит, что для каждой строки требуется уникальное значение для различения строк.
Это было на самом деле мое дело, но нет необходимости добавлять какой-либо столбец: если ваш первичный ключ представляет собой комбинацию из двух полей (например, таблица переходов во многих отношениях), просто объявите ее как таковую:
– eiter в phpyAdmin, просто введите «2» в «Создать индекс в столбцах [x]», затем выберите свои 2 столбца
– или ALTER TABLE mytable ADD PRIMARY KEY(mycol1,mycol2)
Я получил эту ошибку при попытке изменить непосредственно после запуска Query. Оказывается, после просмотра того же запроса я смог изменить значения.
Легкое исправление этого будет идти на вкладку SQL и просто просто вставить код
ALTER TABLE `tablename` ADD PRIMARY KEY (`id`);
Предположим, что у вас есть строка с именем id.
Я столкнулся с той же проблемой, когда я запускаю запрос SELECT с определенными столбцами, хотя один из столбцов является основным в таблице. Я пытался получить выборочные записи с выборочными столбцами в стандартной таблице сообщений «posts». Идентификационный столбец уже является первичным и уникальным.
Простое указание имени первичного / уникального столбца не решит эту проблему. Вы должны указать полное имя столбца, например, «posts.id» (имя_таблицы.columnname), которое сообщает PMA, чтобы выбрать конкретный столбец и открыть редактирование и т. Д.
Мой PMA – 4.3.8. Позвольте мне знать, если это помогает..