Есть ли функциональность, аналогичная ctid в postgres для MySQL/Snowflake или других баз данных?

Я пытался удалить дубликаты из таблицы, но мне нужен более общий способ сделать это. Существует множество способов сделать это, если таблица имеет уникальный идентификатор, например идентификатор строки. Но в остальном это кажется очень сложным и разным для разных баз данных.

Я даже изучил CTE (Common Table Expressions), чтобы сделать то же самое, но кажется, что базы данных не позволяют использовать CTE, за которым следует предложение DELETE (по крайней мере, то, что я видел с MySQL и Snowflake).

Но в PostgreSQL, похоже, есть способ добиться этого, не обязательно имея какой-либо уникальный идентификатор. Это достигается за счет использования ctid, системный столбец в PostgreSQL. Мне любопытно, есть ли аналогичная функциональность, такая как ctid, для других баз данных, особенно для MySQL и Snowflake, которые меня сейчас интересуют.

нет не CTID

Simeon Pilgrim 16.03.2022 08:02
stackoverflow.com/questions/58259580/…
Simeon Pilgrim 16.03.2022 08:03

@SimeonPilgrim Спасибо за предложение, но я до сих пор делал что-то подобное и хотел исключить процесс создания какой-либо дополнительной таблицы. Кажется, что без уникального идентификатора не так много контроля.

Amit Pathak 16.03.2022 08:20

Да, вам нужен план борьбы с дубликатами.

Simeon Pilgrim 16.03.2022 08:24

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

Simeon Pilgrim 16.03.2022 08:25

В MySQL есть такой внутренний 6-байтовый номер строки (GEN_CLUST_INDEX), когда в таблице нет уникальных индексов, но он абсолютно недоступен. dev.mysql.com/doc/refman/8.0/en/innodb-index-types.html

Akina 16.03.2022 09:06

Понял @SimeonPilgrim

Amit Pathak 16.03.2022 09:34

Спасибо, все еще повышает ценность моих знаний @Akina

Amit Pathak 16.03.2022 09:35
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
8
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

I am curious if there is a similar functionality like ctid for other databases especially MySQL and Snowflake is what I am interested in currently.

В Снежинке нет CTID.

Другие вопросы по теме