首页 > 解决方案 > 在mysql中通过c#在特定模式中创建表

问题描述

我正在尝试使用 C# 在 mySQL 中创建数据库和表。到目前为止,我可以通过 c# 在 mysql 中创建一个模式,但是在创建的模式中创建表时遇到了问题。

用户将输入要创建的模式的名称,然后输入将在之前输入的模式名称下创建的表名。模式名称和表名称采用文本框值。

我在表查询中遇到错误,该错误与语法有关。

myQuery1.AppendFormat("CREATE SCHEMA {0}", databasenametxt.Text);
myQuery2.AppendFormat("CREATE TABLE {0} (name VARCHAR(20)) WHERE 
database={0}",tblenametxt.Text,databasenametxt.Text);
string s1 = myQuery1.ToString();
string s2 = myQuery2.ToString();
MySqlCommand cmd = new MySqlCommand(s1, coat);
MySqlCommand cmd1 = new MySqlCommand(s2, coat);
cmd.ExecuteNonQuery();
cmd1.ExecuteNonQuery();

myQuery1 已成功执行,并使用在 databasenametxt.Text 中输入的名称创建了一个模式,但在 myquery2 中出现错误。

标签: c#mysqlsql

解决方案


我理解它的方式是你想在其中动态创建一个模式和表。我不确定您得到的错误,但请尝试使用以下查询:

CREATE TABLE schema_name.table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .... )

为了替换schema_nameand table_name,它应该像下面这样工作:

myQuery2.AppendFormat("CREATE TABLE {schema_name}.{table_name} ( {column_name1} {data_type}, .... ), your_schema_name, your_table_name, column_name1, data_type1);

您也可以只添加字符串:

myQuery2.AppendFormat("CREATE TABLE " + your_schema_name + "." + your_table_name + " ( " + column_name1 + " " + data_type1 + ")");

只是您正在创建一个查询字符串,它将在 sql server 上运行。

此外,您可以在https://dev.mysql.com/doc/refman/8.0/en/create-table.html获得用于创建表的所有 msql 语法

让我知道它是否有帮助!


推荐阅读