@andrei_pro

Существует ли стандарт для sql кода?

Всем привет.

Стоит задача распарсить mysql код на php или js. Проблема что разные редакторы выдают его по разному.

Вот пример ddl одной и той же таблицы:

create table web_users
(
    id         int unsigned auto_increment
        primary key,
    web_id   int unsigned not null,
    email      varchar(255) not null,
    permission varchar(255) not null,
    created_at timestamp    null,
    updated_at timestamp    null,
    constraint web_users_web_id_foreign
        foreign key (web_id) references webs (id)
            on delete cascade
)
    collate = utf8mb4_unicode_ci;


CREATE TABLE `web_users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `web_id` int(10) unsigned NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `permission` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `web_users_web_id_foreign` (`web_id`),
  CONSTRAINT `web_users_web_id_foreign` FOREIGN KEY (`web_id`) REFERENCES `webs` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci


Есть ли какая-то статья со всеми возможными вариантами синтаксиса?
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Ну вот вам полное описание для create table, можете изучить.

Два DDL отличаются, т.к. в одном убраны все необязательные параметры, а в другом наоборот, описаны все подробности, при том что значительная их часть содержит значения по умолчанию.
Ответ написан
Комментировать
dmtrbskkv
@dmtrbskkv
Кодим и декодим, а иногда кино смотрим
У этого всего плюс-минус одинаковая структура. Отличия только в ковычках, пробелах и регистре, но это всё можно с помощью регулярных выражений решить, используя флаги. Остается только загуглить те выражения которые нужны, например: "sql CREATE TABLE примеры"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы