SQL

Просьба объяснить код на SQL - что означают команды и почему не запускается.

CREATE DATABASE ximchistka
on primary
(name=sqlcode,
filename="C:\db\ximchistka_code.mdf,
size=5,
maxsize=100,
filegrowth=0)
log on
(name=sqlcodelog,
filename="C:\db\ximchistka_log.mdf",
size=1,
maxsize=40,
filegrowth=0)

Пытаюсь запустить код в phpmyadmin (MAMP) и возникают ошибки:
Неожиданный символ. (near "\" at position 173)
Неожиданный символ. (near "\" at position 176)
Ожидалась закрывающая кавычка ". (near "" at position 235)
Неизвестный оператор. (near "on" at position 28)
Я так подозреваю, это связано с тем, что phpmyadmin пытается создать базу на сервере, а команды создают базу на диске компа... Также просьба объяснить, что означает оператор on primary
Он тебе прямым текстом говорит что ты вставил гдето лишние две / и ковычки а также on
OK
Oleg Kasyanov
827
Лучший ответ
Ты пытаешься в MySQL выполнить код, написанный для совсем другой СУБД. И, разумеется, получаешь ошибку. В MySQL создание базы делается так:
https:// dev.mysql.com/doc/refman/8.0/en/create-database.html
Параметров намного меньше и они совершенно другие.

Более того, в MySQL баз данных - в смысле стандарта SQL - вообще не существует. Команда CREATE DATABASE создаёт не базу данных, а схему внутри единой безымянной базы данных. И если слово DATABASE заменить во всех командах на SCHEMA, ничего в MySQL не поменяется.
насколько же лучше сделан командный язык PostgreSQL! там прямо поэзия его читать...
Данный код на SQL используется для создания базы данных в Microsoft SQL Server.

Первая строка CREATE DATABASE ximchistka создает базу данных с именем "ximchistka".

Следующая строка "on primary" используется для определения группы файлов, на которую должна быть сохранена база данных.

"name=sqlcode" задает имя файла базы данных, а "filename="C:\db\ximchistka_code.mdf"" определяет путь к файлу на жестком диске.

"size=5" показывает начальный размер файла базы данных, "maxsize=100" указывает максимальный размер файла базы данных, а "filegrowth=0" задает размер, на который база данных будет увеличиваться автоматически при необходимости.

Команда "log on" позволяет определить, где будет храниться журнал транзакций базы данных.

"name=sqlcodelog" задает имя файла журнала транзакций базы данных, а "filename="C:\db\ximchistka_log.mdf"" определяет путь к файлу на жестком диске.

Оператор "on primary" указывает, что имя группы файлов - "primary".

Судя по возникшим ошибкам, Вы пытаетесь запустить код, который предназначен для Microsoft SQL Server, в phpMyAdmin, который работает с базами данных MySQL и MariaDB.

Кроме того, возникает синтаксическая ошибка в строке "filename="C:\db\ximchistka_code.mdf, так как необходимо закрыть кавычки после расширения файла. Вместо этого строку можно записать вот так:

filename='C:\\db\\ximchistka_code.mdf'

Двойной обратный слеш используется для экранирования специальных символов.

Для создания базы данных в MySQL можно использовать команду CREATE DATABASE. Она выглядит так:

CREATE DATABASE ximchistka;

Данный код создаст базу данных с именем "ximchistka".


чат GPT ОТВЕТ.