gpt4 book ai didi

c# - 如何使用 C# 复制 MySql 数据库架构?

转载 作者:行者123 更新时间:2023-11-29 08:17:51 26 4
gpt4 key购买 nike

我正在尝试使用 C# 和 MySql 来复制空表(真正重新创建架构)。结构如下所示:

> TableTemplate (schema)
+ Tables
> FirstTable (table)
> second table (table)
> ...

> SomeOtherTable
+ Tables
> ...

我想要复制 TableTemplate使用用户名进入新架构。

第一个明显的遗忘之路是尝试 CREATE TABLE @UserName LIKE TableTemplate ,很快就了解到 sql 参数应该用于值而不是表名(再次感谢 jon skeet: How to pass a table as parameter to MySqlCommand? )。

因此,我们需要手动验证用户名才能构建表名称 ( robert's a prime example )。

接下来,似乎连CREATE TABLE UserID LIKE TableTemplate;无法工作(即使在 MySQL Workbench 中),因为 TableTemplate不是一张 table 。

因此,需要编写一个循环来创建一个表 LIKE TableTemplate 中的每个表,创建 UserID 后架构(手动验证该字符串后),或尝试其他选项,例如转储数据库并创建新数据库,如以下问题所示:

但我希望避免运行进程、转储数据库并在每次添加用户时从那里创建数据库。

如有任何建议,我们将不胜感激。

最佳答案

我认为mysqldump会更好。但如果你想在一个过程中完成。试试这个。

SELECT
CONCAT ("CREATE TABLE SomeOtherTable.",
TABLE_NAME ," AS SELECT * FROM TableTemplate.", TABLE_NAME
) as creation_sql
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'TableTemplate';

输出将类似于

CREATE TABLE SomeOtherTable.tbl_name AS SELECT * FROM TableTemplate.tbl_name;

然后迭代结果并执行CREATE TABLE ....

关于c# - 如何使用 C# 复制 MySql 数据库架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20207294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com