sql - 从 CSV 文件生成插入 SQL 语句

标签 sql csv insert firebird

我需要将 csv 文件导入 Firebird,我花了几个小时尝试了一些工具,但没有一个能满足我的需求。

主要问题是我尝试过的所有工具都像 EMS Data ImportFirebird Data Wizard希望我的 CSV 文件包含我的表所需的所有信息。

我需要在插入语句中编写一些自定义SQL,例如,我有一个包含城市名称的CSV文件,但由于我的数据库已经拥有另一个表中的所有城市(标准化),所以我需要编写一个子查询在插入语句中查找城市并写入其 ID,我还有一个存储过程来创建 GUIDS。

我的插入语句将是这样的:

INSERT INTO PERSON (ID, NAME, CITY_ID) VALUES((SELECT NEW_GUID FROM CREATE_GUID), :NAME, (SELECT CITY_ID FROM CITY WHERE NAME = :CITY_NAME)

我该如何解决这个问题?

最佳答案

这有点粗糙 - 但对于一次性工作,我有时会使用 Excel。

如果将 CSV 文件导入 Excel,则可以创建一个公式,该公式通过在公式中使用字符串串联来创建 INSERT 语句。因此,如果您的 CSV 文件有 3 列,分别出现在 Excel 的 A、B 和 C 列中,您可以编写如下公式...

="INSERT INTO MyTable (Col1, Col2, Col3) VALUES (" & A1 & ", " & B1 & ", " & C1 & ")"

然后,您可以将公式复制到所有行,然后将答案复制并粘贴到文本文件中以针对数据库运行。

就像我说的 - 这很粗糙 - 但它可能是一种“快速而肮脏”的完成工作的方式!

关于sql - 从 CSV 文件生成插入 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8213/

相关文章:

php - 使用 join (codeigniter) 从单个字段中检索并打印逗号分隔符后的值

php - 创建从Linux终端获取的内网IP列表数据库的最佳方法(nbtscan或其他命令)

python - 如何使用python选择CSV文件中的每第N行

mysql 1452 在使用插入表时

mysql - 更新表A,用一个SQL命令插入表B?

sql - 更新 SQL View ,对外部表值实现约束

sql - 棘手的 Postgresql 查询

c# - 使用 ORM 创建数据库

java - 通过java输出CSV

php - 高级 PHP 上传表单