我有兩個數據庫具有相同的結構,我想比較數據庫之間的記錄。第二個數據庫中的記錄是從第一個數據庫複製的,但複製過程有時不起作用,並且在一個表的第一個數據庫中,我有比第二個數據庫中的同一個表中的記錄多的記錄。所以我想知道第一個數據庫中的哪些記錄不存在於第二個數據庫中。我曾嘗試過類似的東西:處理查詢中的空結果集
<etl>
<connection id="db1" driver="auto"
url="jdbc:mysql://localhost:3306/db" user="user"
password="xxx"
classpath="C:/mysql-connector-java-5.1.20.jar" />
<connection id="db2" driver="auto"
url="jdbc:mysql://localhost:3307/db" user="user"
password="xxx"
classpath="C:/mysql-connector-java-5.1.20.jar" />
<connection id="text" driver="text" />
<query connection-id="db1">
SELECT * FROM table;
<query connection-id="db2">
SELECT * FROM table WHERE id = '$id';
<script connection-id="text">
sometext, $rownum
</script>
</query>
</query>
</etl>
問題是,當針對db2的查詢結果爲空時,腳本未執行。
如何解決這個問題?
問候, 亞切克
太好了!有用!問題是我不明白嵌套查詢和腳本中變量的可見性。我在哪裏可以找到一個好的描述? – user1337302 2013-03-29 08:22:16
恐怕沒有簡單的解釋變量上下文是如何工作的。我會在scriptella.wordpress.com上發佈一篇文章,如果我終於得到了一些時間(你知道操作系統人員吸收正確的文件)。但簡單地說,這個想法很簡單 - 執行查詢時,對於每個返回的行,它調用嵌套的腳本(或其他查詢元素),當前行的列值可作爲這些**內**元素的變量。您可以將查詢包含到其他查詢中,但是邏輯相同,所有父列僅適用於子級,但不適用於兄弟。 – ejboy 2013-03-29 12:38:52