powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
24 сообщений из 49, страница 2 из 2
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37480439
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не понял
идея, что ключ может включать несколько полей, в голове не прижилась?
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37480455
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftmesier однозначно идентифицировать запись можно по одновременному совпадению id сообщения и id человека.. Разве нет?
select * from mn a, n b, m c, where b.i = a.i and c.j = a.j
Ну и зачем первичный ключ?Ну так значит "id сообщения и id человека" - это и есть первичный ключ.
Оппа! А вот и решение проблемы!
Сказать по правде, НИКОГДА не пользовался первичными ключами из двух полей.
Даже не знал, что так можно.. )))
Огромное спасибо! Сейчас попробовал - работает.
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37480462
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112miksoftпропущено...
Ну так значит "id сообщения и id человека" - это и есть первичный ключ.
+1
щас ТС откроет для себя составной ключ :))
Ога! )))
Пребывал под воздействием стереотипов каких-то..
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37480479
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneя не понял
идея, что ключ может включать несколько полей, в голове не прижилась?
Ну да. За ненадобностью..
Работая с Oracle, я в аналогичной ситуации на связующей таблице создавал только foreign key, и этого хватало.
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37480480
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierSergSuper вы хотите отредактировать одну запись, для этого клиент посылает на сервер запрос update ... where ...
если есть первичный ключ, то во where ставится условие по первичному ключу
если первичного ключа нет - какое условие должен ставить клиент?
Ещё раз обращаю ваше внимание, что речь ведется не о просто таблице с записями, а о связующей таблице в отношении много-ко многим..
ничего подобного, изначально речь шла о редактировании абстрактной таблицыmesierВозьмем за основу пример, приведенный adv, и представим, что создаем систему обмена сообщениями.
n - справочник сообщений, m - справочник людей.
mn - таблица получателей сообщений. У каждого получателя может быть много сообщений, каждое сообщение может быть отправлено множеству получателей. В этой таблице может быть ещё поле, обозначающее, допустим, прочитано ли сообщение.
Таким образом однозначно идентифицировать запись можно по одновременному совпадению id сообщения и id человека.. Разве нет?
select * from mn a, n b, m c, where b.i = a.i and c.j = a.j
Ну и зачем первичный ключ?
Впрочим, если я где-то заблуждаюсь, готов выслушать наставления, только по возможности адекватное, а не как обычно на российских форумах.. ))к сожалению не все обертки к БД такие интеллектуальные, некоторые не могут так рассуждать и читать Ваши мысли
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37480567
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper ничего подобного, изначально речь шла о редактировании абстрактной таблицы
Так таки абстрактной??
Цитата из стартового сообщения:
"связующая таблица в отношении many-to-many не редактируется (UPDATE)."
Подумал, что не требуется детально описывать сущность..
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37480704
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierSergSuper ничего подобного, изначально речь шла о редактировании абстрактной таблицы
Так таки абстрактной??
Цитата из стартового сообщения:
"связующая таблица в отношении many-to-many не редактируется (UPDATE)."
Подумал, что не требуется детально описывать сущность..
а чуть подальше: В TOAD-е попробовал смотреть и редактировать
т.е. просто редактируется абстрактная таблица, для TOAD то всё равно
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37480788
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierТаким образом однозначно идентифицировать запись можно по одновременному совпадению id сообщения и id человека.. Разве нет?
это и будет первичный ключ. запись идентифицировать можно по первичному ключу. Первичный ключ не допускает повторов, значит в таблице запрещены 2 и более записей с одной и той же комбинацией id сообщения и id человека. Без ПК можно будет занести массу таких записей, и они не будут иметь смысла
id_msg, id_person
1 1
1 1
1 1
..
ПК такого не допустит.
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37480934
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvБез ПК можно будет занести массу таких записей, и они не будут иметь смысла

Ну, может в модели данных аффтара это имеет какой-нибудь смысл...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37482134
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 13.10.2011 9:48, mesier wrote:
> По идее pk в такой таблице не нужен.. Но пришлось сделать (при этом не

По идее в любой таблице обязательно должен быть PK.
Иначе записи неидентифицируемы и ты не сможеш их обрабатывать
с помощью SQL.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37482150
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivИначе записи неидентифицируемы и ты не сможеш их обрабатывать с помощью SQL.

Шо, какой-то сервер без ПК не способен даже посчитать select count(*),sum(f) from t?..
Фтопку его!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37482209
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivOn 13.10.2011 9:48, mesier wrote:
> По идее pk в такой таблице не нужен.. Но пришлось сделать (при этом не

По идее в любой таблице обязательно должен быть PK.
Иначе записи неидентифицируемы и ты не сможеш их обрабатывать
с помощью SQL.
с данными надо работать, а не с записями...
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37483190
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivOn 13.10.2011 9:48, mesier wrote:
> По идее pk в такой таблице не нужен.. Но пришлось сделать (при этом не

По идее в любой таблице обязательно должен быть PK.
Иначе записи неидентифицируемы и ты не сможеш их обрабатывать
с помощью SQL.
Я смогу их обрабатывать и без pk..
По сути любые ключи являются лишь ограничением целостности.
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37483242
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierПо сути любые ключи являются лишь ограничением целостности.
правильно. осталось подумать, для чего в СУБД нужны ограничения целостности.
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37483362
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvmesierПо сути любые ключи являются лишь ограничением целостности.
правильно. осталось подумать, для чего в СУБД нужны ограничения целостности.
Да что вы говорите!...
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37488078
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierВпрочем, вопрос остается открытым: если знаете как реализовать много-ко-многим по другому, более рационально - с удовольствием выслушаю!Конечно... У вас многие ко многим всегда вырождаются в отдельную таблицу, PK которой вся запись. Просто вам этого не объяснили на курсах СУБД для мотористов. Поясняю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE a (
id bigserial NOT NULL PRIMAKRY KEY
);
CREATE TABLE b (
id bigserial NOT NULL PRIMARY KEY
);
CREATE TABLE a_to_b (
 a bigint NOT NULL REFERENCES a(id) MATCH SIMPLE,
 b bigint NOT NULL REFERENCES b(id) MATCH SIMPLE,
 PRIMARY KEY (a, b)
);
Диалект PostgreSQL.
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37488092
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Warstone Просто вам этого не объяснили на курсах СУБД для мотористов.
Очень смешно...
С pk уже разобрались. Вы не могли этого не заметить, если бы бегло просмотрели топик.
Стоило ли отвечать, если ничего нового Вы не привнесли в тему?
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37491271
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WarstonemesierВпрочем, вопрос остается открытым: если знаете как реализовать много-ко-многим по другому, более рационально - с удовольствием выслушаю!Конечно... У вас многие ко многим всегда вырождаются в отдельную таблицу, PK которой вся запись. Просто вам этого не объяснили на курсах СУБД для мотористов. Поясняю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE a (
id bigserial NOT NULL PRIMAKRY KEY
);
CREATE TABLE b (
id bigserial NOT NULL PRIMARY KEY
);
CREATE TABLE a_to_b (
 a bigint NOT NULL REFERENCES a(id) MATCH SIMPLE,
 b bigint NOT NULL REFERENCES b(id) MATCH SIMPLE,
 PRIMARY KEY (a, b)
);
Диалект PostgreSQL.
Потенциальный ключ нужен почти всегда. А вот PRIMARY KEY не факт, особенно,
если на сущность нет и не планируется FOREIGN KEY.
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37491276
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesier, вообще, СУБД должна делать то, что ей скажут.
Сказали обновить записи по предикату - пусть обновляет.
Если под предикат подходят все записи таблицы - это проблемы разработчика,
а не СУБД. Если первичного ключа нет - это не повод откатывать операцию.
Обновлять надо всё, что подходит под условие, первичный ключ вообще ни при чём.
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37491492
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНПотенциальный ключ нужен почти всегда. А вот PRIMARY KEY не факт...К чему эта фраза, если ПК является одним из потенциальных?
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37491595
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНmesier, вообще, СУБД должна делать то, что ей скажут.
Сказали обновить записи по предикату - пусть обновляет.
Если под предикат подходят все записи таблицы - это проблемы разработчика,
а не СУБД. Если первичного ключа нет - это не повод откатывать операцию.
Обновлять надо всё, что подходит под условие, первичный ключ вообще ни при чём.
Так вот я тоже так думал. Пока не поработал с MySQL.
Этому подавай первичный ключ, если хочешь апдейтить, и всё тут!..
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37491602
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierТак вот я тоже так думал. Пока не поработал с MySQL.
Этому подавай первичный ключ, если хочешь апдейтить, и всё тут!..

Мдя... Рация работает на танке... "Этому" - это "TOADу".
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37491656
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinmesierТак вот я тоже так думал. Пока не поработал с MySQL.
Этому подавай первичный ключ, если хочешь апдейтить, и всё тут!..
Мдя... Рация работает на танке... "Этому" - это "TOADу".
Да хоть кому! Я так понял, что любой программе, использующей jdbc-вызовы.
Можете назвать где такого требования нет? Где апдейт таблицы MySQL без pk будет работать?
...
Рейтинг: 0 / 0
Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
    #37491665
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierМожете назвать где такого требования нет? Где апдейт таблицы MySQL без pk будет работать?

В любой программе, которая не пытается сгенерить предикат для запроса, основываясь на получении метаданных.
...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Уникальная херь у Мускула - нельзя апдэйтить запись если в таблице нет поля primary key?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]