Как переформатировать insert join запрос с mysql на postgresql?

Пользователь

от terrence , в категории: SQL , год назад

Как переформатировать insert join запрос с mysql на postgresql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от shirley.vonrueden , год назад

@terrence 

При переформатировании insert join запроса с MySQL на PostgreSQL, необходимо учитывать различия в синтаксисе и функциях двух систем.


Пример переформатирования insert join запроса с MySQL на PostgreSQL:


MySQL:

1
2
3
4
5
INSERT INTO table1 (column1, column2)
SELECT column3, column4
FROM table2
JOIN table3 ON table2.id = table3.id
WHERE table3.column5 = 'value';


PostgreSQL:

1
2
3
4
5
INSERT INTO table1 (column1, column2)
SELECT column3, column4
FROM table2
JOIN table3 ON table2.id = table3.id
WHERE table3.column5 = 'value';


Основные моменты, которые следует учесть при переходе от MySQL к PostgreSQL:

  1. Некоторые различия в синтаксисе.
  2. Названия и типы данных могут отличаться. Например, в PostgreSQL тип данных для булевого значения - "boolean", в то время как в MySQL - "tinyint".
  3. Некоторые функции могут иметь другие имена или немного отличаться в использовании.


Также следует обратить внимание на различия в настройках и возможностях двух систем, чтобы убедиться, что переформатированный запрос будет работать так же эффективно в PostgreSQL, как и в MySQL.

Пользователь

от vladimir , 5 месяцев назад

@terrence 

Основные моменты, которые нужно учесть при переформатировании запроса с MySQL на PostgreSQL:

  1. Синтаксис JOIN: В PostgreSQL используется более строгий синтаксис для оператора JOIN, который требует указания типа JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN и т. д.). В отличие от MySQL, где просто указывается ключевое слово "JOIN", в PostgreSQL нужно явно указывать тип соединения перед ключевым словом "JOIN".


Пример запроса с явным указанием типа JOIN в PostgreSQL:

1
2
3
4
5
INSERT INTO table1 (column1, column2)
SELECT column3, column4
FROM table2
INNER JOIN table3 ON table2.id = table3.id
WHERE table3.column5 = 'value';


  1. Названия и типы данных: Убедитесь, что названия таблиц, столбцов и типы данных соответствуют синтаксису PostgreSQL. Например, тип данных для булевого значения в PostgreSQL - "boolean".
  2. Встроенные функции: Проверьте, что используемые в запросе встроенные функции имеют одинаковое название и синтаксис в обеих системах.
  3. Использование двойных кавычек: В PostgreSQL идентификаторы могут быть заключены в двойные кавычки, если они содержат спецсимволы или регистрозависимы.
  4. Настройки и особенности: Учитывайте особенности настройки и использования индексов, ограничений, триггеров и других объектов базы данных в PostgreSQL.


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