--- sidebar_position: 3 description: Create table and other functions to work with MySQL in the Open Integration Package, a free open-source integration library for 1C:Enterprise 8, OneScript and CLI keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, MySQL] --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; # Create table Creates an empty table in the database `Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "", Val Tls = "") Export` | Parameter | CLI option | Type | Required | Description | |-|-|-|-|-| | Table | --table | String | ✔ | Table name | | ColoumnsStruct | --cols | Structure Of KeyAndValue | ✔ | Column structure: Key > Name, Value > Data type | | Connection | --dbc | String, Arbitrary | ✖ | Connection or connection string | | Tls | --tls | Structure Of KeyAndValue | ✖ | TLS settings, if necessary. See GetTlsSettings | Returns: Map Of KeyAndValue - Result of query execution
:::tip The list of available types is described on the initial page of the MySQL library documentation :::
```bsl title="1C:Enterprise/OneScript code example" Address = "127.0.0.1"; Login = "bayselonarrend"; Password = "12we..."; Base = "testbase1"; TLS = True; Port = 3306; ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password, Port); If TLS Then TLSSettings = OPI_MySQL.GetTLSSettings(True); Else TLSSettings = Undefined; EndIf; Table = "testtable"; ColoumnsStruct = New Structure; ColoumnsStruct.Insert("char_field" , "CHAR(5)"); ColoumnsStruct.Insert("varchar_field" , "VARCHAR(255)"); ColoumnsStruct.Insert("tinytext_field" , "TINYTEXT"); ColoumnsStruct.Insert("text_field" , "TEXT"); ColoumnsStruct.Insert("mediumtext_field", "MEDIUMTEXT"); ColoumnsStruct.Insert("longtext_field" , "LONGTEXT"); ColoumnsStruct.Insert("tinyint_field" , "TINYINT"); ColoumnsStruct.Insert("smallint_field" , "SMALLINT"); ColoumnsStruct.Insert("mediumint_field" , "MEDIUMINT"); ColoumnsStruct.Insert("int_field" , "INT"); ColoumnsStruct.Insert("uint_field" , "INT UNSIGNED"); ColoumnsStruct.Insert("bigint_field" , "BIGINT"); ColoumnsStruct.Insert("float_field" , "FLOAT"); ColoumnsStruct.Insert("double_field" , "DOUBLE"); ColoumnsStruct.Insert("date_field" , "DATE"); ColoumnsStruct.Insert("time_field" , "TIME"); ColoumnsStruct.Insert("datetime_field" , "DATETIME"); ColoumnsStruct.Insert("timestamp_field" , "TIMESTAMP"); ColoumnsStruct.Insert("mediumblob_field", "MEDIUMBLOB"); ColoumnsStruct.Insert("set_field" , "SET('one','two','three')"); // When using the connection string, a new connection is initialised, // which will be closed after the function is executed. // If several operations are performed, it is desirable to use one connection, // previously created by the CreateConnection function() Result = OPI_MySQL.CreateTable(Table, ColoumnsStruct, ConnectionString, TLSSettings); ``` ```bash # JSON data can also be passed as a path to a .json file oint mysql CreateTable \ --table "somename" \ --cols "{'char_field':'CHAR(5)','varchar_field':'VARCHAR(255)','tinytext_field':'TINYTEXT','text_field':'TEXT','mediumtext_field':'MEDIUMTEXT','longtext_field':'LONGTEXT','tinyint_field':'TINYINT','smallint_field':'SMALLINT','mediumint_field':'MEDIUMINT','int_field':'INT','uint_field':'INT UNSIGNED','bigint_field':'BIGINT','float_field':'FLOAT','double_field':'DOUBLE','date_field':'DATE','time_field':'TIME','datetime_field':'DATETIME','timestamp_field':'TIMESTAMP','mediumblob_field':'MEDIUMBLOB','set_field':'SET(\u0027one\u0027,\u0027two\u0027,\u0027three\u0027)','wtf_field':'WTF'}" \ --dbc "mysql://bayselonarrend:***@127.0.0.1:3306/" \ --tls "{'use_tls':true,'accept_invalid_certs':true}" ``` ```batch :: JSON data can also be passed as a path to a .json file oint mysql CreateTable ^ --table "somename" ^ --cols "{'char_field':'CHAR(5)','varchar_field':'VARCHAR(255)','tinytext_field':'TINYTEXT','text_field':'TEXT','mediumtext_field':'MEDIUMTEXT','longtext_field':'LONGTEXT','tinyint_field':'TINYINT','smallint_field':'SMALLINT','mediumint_field':'MEDIUMINT','int_field':'INT','uint_field':'INT UNSIGNED','bigint_field':'BIGINT','float_field':'FLOAT','double_field':'DOUBLE','date_field':'DATE','time_field':'TIME','datetime_field':'DATETIME','timestamp_field':'TIMESTAMP','mediumblob_field':'MEDIUMBLOB','set_field':'SET(\u0027one\u0027,\u0027two\u0027,\u0027three\u0027)','wtf_field':'WTF'}" ^ --dbc "mysql://bayselonarrend:***@127.0.0.1:3306/" ^ --tls "{'use_tls':true,'accept_invalid_certs':true}" ``` ```json title="Result" { "result": true } ```