Создание таблиц базы данных
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