Создание таблиц базы данных
gsqlcmd позволяет генерировать операторы CREATE TABLE.
Например, файл aapl.csv имеет следующее содержимое:
symbol;time;open;high;low;close;volume AAPL;2019-04-09 13:30:00;200.3200;200.4500;199.68;200.3800;1332001 AAPL;2019-04-09 13:31:00;200.3726;200.8850;200.32;200.6920;351343
Вы можете сгенерировать код для создания таблицы, чтобы хранить эти данные, используя режим make-create:
gsqlcmd make-create aapl.csv create-yahoo1m.sql /table=dbo.yahoo1m /mssql
Используйте опцию /table, чтобы указать имя целевой таблицы.
Также укажите опцию /serverType для определения целевой платформы базы данных.
Опцию /serverType можно указать как /mssql, /mysql, /oracle, /pgsql, /snowflake или /sqlite.
Выходной файл create-yahoo1m.sql будет содержать следующее:
CREATE TABLE [dbo].[yahoo1m] (
[ID] int IDENTITY(1,1) NOT NULL,
[symbol] nvarchar(255) NULL,
[time] datetime NULL,
[open] float NULL,
[high] float NULL,
[low] float NULL,
[close] float NULL,
[volume] int NULL,
CONSTRAINT [PK_yahoo1m_dbo] PRIMARY KEY ([ID])
);
GO
print N'Table [dbo].[yahoo1m] created';
GO
По умолчанию gsqlcmd добавляет поле ID, используемое в качестве поля IDENTITY, если в исходных данных нет столбца с уникальными целочисленными значениями.
Вы можете использовать опцию /keys для указания полей первичного ключа.
Например:
gsqlcmd make-create aapl.csv create-yahoo1m.sql /table=dbo.yahoo1m /mssql /keys=symbol,time
В этом случае, create-yahoo1m.sql будет содержать следующее:
CREATE TABLE [dbo].[yahoo1m] (
[symbol] nvarchar(255) NOT NULL,
[time] datetime NOT NULL,
[open] float NULL,
[high] float NULL,
[low] float NULL,
[close] float NULL,
[volume] int NULL,
CONSTRAINT [PK_yahoo1m_dbo] PRIMARY KEY (
[symbol],
[time]
)
);
GO
print N'Table [dbo].[yahoo1m] created';
GO
gsqlcmd автоматически определяет типы данных столбцов, но их следует проверить и изменить при необходимости.
Обязательно проверьте поля nvarchar(255). Например, для поля symbol лучше использовать varchar(25).
Если вы создали файл формата для переименования имен столбцов, используйте его в опции /formatFile.
Например:
gsqlcmd make-create aapl.csv create-yahoo1m.sql /table=dbo.yahoo1m /mssql /keys=symbol,time /formatFile=yahoo1m.fmt