Rodegast
> как работать если попадется не стандартная таблица в которой нет уникального первичного ключаПервичный ключь должен быть в любом случае. Может не быть поля id, тогда нужно использовать естественный ключь.
Но ведь это не так.
В общем случае, в некоторых РСУБД всё же можно создать таблицы без первичного ключа. Правда, это серьёзно ограничит функционал. Да и буква Р в аббревиатуре “РСУБД” сразу теряет смысл.
Но, при этом, тот же постгре поведет себя иначе - у него в любом случае будет первичный ключ - служебный OID (на котором куча ограничений, например, нельзя из коробки его бэкапить, такая таблица без доп. шаманства не будет реплицироваться, и многое другое)
MS SQL до какой-то там версии вообще ничего не делал и жил с дубликатами, причем работа с такой таблицей через их собственную орм была невозможной, только на голых запросах.
С таблицами без первичных ключей на других СУБД не сталкивался, но подозреваю, что везде есть свои подводные камни, сильно зависящие не только от СУБД, но и её конкретной конфигурации.
По поводу первичных ключей - они могут не только отсутствовать или быть скаляром, но и быть составными, что автору нужно опять-таки учитывать.
Как то так, вкратце