Общий способ определения поля в таблице - PullRequest
0 голосов
/ 17 января 2010

Я пишу редактор SQL (sqlite3).

Я могу отобразить таблицу и позволить пользователям редактировать любое значение в таблице, но теперь мне нужен какой-то способ определения отредактированного значения. Проблема в том, что я не знаю, что такое первичный ключ, и я не думаю, что это хорошая идея сказать: «обновить таблицу, установите a = b, где x = 123 и y = 123, z = 123 и ... "для всех полей, которые не являются" а ".

Я использую jquery (и ajax) и php.

Есть идеи?

Ответы [ 4 ]

1 голос
/ 17 января 2010

Если вы не знаете, что такое первичный ключ (или не знаете, существует ли индекс UNIQUE) , у вас не будет большого выбора: даже если вы используете все поля в вашем предложении where, вы можете обновить более одной строки (ту, которую пользователь хотел изменить) .

Вам действительно нужен какой-то способ идентифицировать одну точную линию - и этот путь является первичным ключом.


Может быть, просто из любопытства, вы можете проверить, как phpMyAdmin это делает?
(я знаю, что это не SQLIte, мой MySQL - но, возможно, общая идея может быть использована повторно?)

0 голосов
/ 17 января 2010

Это действительно не очень хорошая идея, чтобы выпустить это обновление «... для всех полей, которые не являются». Вы должны включить тоже, вместе со старым значением a в строке, которая была отредактирована.

0 голосов
/ 17 января 2010

Если вы не можете определить колонку PK или UK, тогда вы должны использовать «где x = 123 и y = 123 и z = 123», но не забудьте добавить LIMIT 1 - тогда вы уверены, что не редактируете более одногозапись.

0 голосов
/ 17 января 2010

Вы можете заставить пользователя указать первичный ключ (или, по крайней мере, УНИКАЛЬНЫЙ), а затем получить его с помощью SHOW INDEX FROM table (http://dev.mysql.com/doc/refman/5.0/en/show-index.html)

).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...