我有一个已知数据库名称的列表,我想应用相同的 sql 命令。
很简单:
使用我的数据库; 插入表格(列) 值('值');
我想使用 for 循环或某种形式来替换“use my_database”部分。
我用谷歌搜索过,但大多数答案是关于“迭代所有数据库”,而不是已知数据库的一部分。
请指教。
最佳答案
您实际上并不需要使用use database
命令来与特定架构交互。您可以为表名添加前缀作为插入查询的一部分:
insert into schema_name.table_name (col) values ('value');
将产生相同的最终结果。
如果你只处理 MySQL,你想要做的事情可能会有点麻烦,尽管你可以使用存储过程循环遍历所有所需的模式/表组合(尽管如果这只是一次性的事情) ,可能有点过分了)
如果您从具有写入权限的应用程序与 MySQL 交互,您可以:
- Build and array with schema names
具体细节取决于语言,但例如使用 PHP,您可以执行以下操作:
$schemas = array('schema_one', 'schema_two', 'schema_third');
- Loop through the schema array
同样,在 PHP 中,您可以使用类似 foreach
的内容,如下所示:
foreach($schemas as $s)
{
$stmt = "insert into ".$s.".table_name (col) values('".$value."')";
// Here, you'd actually run $stmt against MySQL to run the insert.
}
这是一个非常粗略的示例,我使用 PHP,因为我 99% 的编码时间都花在 PHP 上,但您可以使用任何其他编程语言来实现相同的目标
关于mysql - 查看已知数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53091504/