我正在构建一个将数据从 CSV 传递到 MS SQL 数据库的应用程序。该数据库被用作我的企业所有此类记录(电话)的存储库。当我运行该应用程序时,它会读取 CSV 并将其转换为 Pandas 数据帧,然后我使用 SQLAlchemy 和 pyodbc 将记录附加到 SQL 中的表中。
但是,由于我正在处理的内容的性质,我们通常已经将数据导入到表中。我正在寻找一种方法来在将每条记录附加到表之前检查我的主键是否存在(SQL 表和数据框中的列)。
# save dataframe to mssql DB
engine = sql.create_engine('mssql+pyodbc://CTR-HV-DEVSQL3/MasterCallDb')
df.to_sql('Calls', engine, if_exists='append')
我的 CSV 作为 pandas 数据框导入(主键是 FileName,它始终是唯一的),然后传递到 MS SQL。这是我的数据框(df):
+---+------------+-------------+
| | FileName | Name |
+---+------------+-------------+
| 1 | 123.flac | Robert |
| 2 | 456.flac | Michael |
| 3 | 789.flac | Joesph |
+---+------------+-------------+
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢!
我正在使用Excel工作簿中的一些VBA For Each循环,由于某种原因,我的循环到达32,766行后出现运行时错误.我认为这是一个Int/Long类型错误,但我似乎无法弄清楚如何解决它.这是我目前的代码:
' Add Play Call hyperlinks
Dim Rng As Range, Cell As Range
Dim FileName As String
Dim Bureau As String
Dim CopiedFilesDirectory As String
Dim AudioFilePath As String
lastRow = Sheets("CallLog").Range("I" & Rows.Count).End(xlUp).Row
Set Rng = Sheets("CallLog").Range("I" & firstRow & ":I" & lastRow)
For Each Cell In Rng
FileName = Range("I" & Cell.Row).Value
MatterNumber = Replace(Range("K" & Cell.Row).Value, "/", "-")
ContactUsername = Range("M" & Cell.Row).Value
Bureau = Range("N" & Cell.Row).Value
CopiedFilesDirectory = ImportCallsUserForm.CopyFilesDirectoryTextBox.Value
AudioFilePath = CopiedFilesDirectory & …Run Code Online (Sandbox Code Playgroud)