You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/11/21 10:11:43 UTC

[shardingsphere] branch master updated: Add integration test case for select group by statement contains null value record (#22314)

This is an automated email from the ASF dual-hosted git repository.

zhaojinchao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 792829660d2 Add integration test case for select group by statement contains null value record (#22314)
792829660d2 is described below

commit 792829660d2bf7b2dbc7890d8431242a47541333
Author: Zhengqiang Duan <du...@apache.org>
AuthorDate: Mon Nov 21 18:11:35 2022 +0800

    Add integration test case for select group by statement contains null value record (#22314)
    
    * Add integration test case for select group by statement contains null value record
    
    * update integration test case
    
    * update integration test case
---
 .../test/integration/cases/value/SQLValue.java     |  3 ++
 .../dml/dataset/db/batch_insert_for_order.xml      |  8 ++--
 .../dml/dataset/db/delete_with_sharding_value.xml  |  6 +--
 .../cases/dml/dataset/db/insert_for_order_1.xml    |  8 ++--
 .../cases/dml/dataset/db/insert_for_order_2.xml    |  8 ++--
 .../db/insert_multiple_values_for_order_1_2.xml    |  8 ++--
 .../dataset/db/insert_on_duplicate_key_update.xml  |  8 ++--
 .../test/resources/cases/dml/dataset/db/update.xml |  8 ++--
 .../dataset/db/update_with_column_equal_column.xml |  8 ++--
 .../dml/dataset/db/update_without_condition.xml    |  8 ++--
 .../cases/dql/dql-integration-test-cases.xml       | 56 ++++++++++++++++++++++
 .../env/scenario/db/data/actual/dataset.xml        |  8 ++--
 .../db/data/actual/init-sql/h2/01-actual-init.sql  |  2 +-
 .../data/actual/init-sql/mysql/01-actual-init.sql  | 20 ++++----
 .../actual/init-sql/opengauss/01-actual-init.sql   | 20 ++++----
 .../data/actual/init-sql/oracle/01-actual-init.sql | 20 ++++----
 .../actual/init-sql/postgresql/01-actual-init.sql  | 20 ++++----
 .../actual/init-sql/sqlserver/01-actual-init.sql   | 20 ++++----
 .../env/scenario/db/data/expected/dataset.xml      |  8 ++--
 .../data/expected/init-sql/h2/01-expected-init.sql |  2 +-
 .../expected/init-sql/mysql/01-expected-init.sql   |  2 +-
 .../init-sql/opengauss/01-expected-init.sql        |  2 +-
 .../expected/init-sql/oracle/01-expected-init.sql  |  2 +-
 .../init-sql/postgresql/01-expected-init.sql       |  2 +-
 .../init-sql/sqlserver/01-expected-init.sql        |  2 +-
 25 files changed, 159 insertions(+), 100 deletions(-)

diff --git a/test/integration-test/test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/value/SQLValue.java b/test/integration-test/test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/value/SQLValue.java
index e665f13ef96..b5d62df95c1 100644
--- a/test/integration-test/test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/value/SQLValue.java
+++ b/test/integration-test/test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/value/SQLValue.java
@@ -46,6 +46,9 @@ public final class SQLValue {
         if (type.startsWith("enum#")) {
             return value;
         }
+        if ("null".equalsIgnoreCase(value)) {
+            return null;
+        }
         switch (type) {
             case "String":
             case "varchar":
diff --git a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/batch_insert_for_order.xml b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/batch_insert_for_order.xml
index 80b2d034350..cd899b60f86 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/batch_insert_for_order.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/batch_insert_for_order.xml
@@ -24,9 +24,9 @@
         <column name="remark" type="varchar" />
         <column name="creation_date" type="datetime" />
     </metadata>
-    <row data-node="db_0.t_order" values="1000, 10, init, 1, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="1000, 10, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="1001, 10, init, 2, test, 2017-08-08" />
-    <row data-node="db_0.t_order" values="2000, 20, init, 3, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="2000, 20, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="2001, 20, init, 4, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1, 1, insert, 1, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1100, 11, init, 5, test, 2017-08-08" />
@@ -48,7 +48,7 @@
     <row data-node="db_4.t_order" values="2401, 24, init, 20, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1500, 15, init, 1, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1501, 15, init, 2, test, 2017-08-08" />
-    <row data-node="db_5.t_order" values="2500, 25, init, 3, test, 2017-08-08" />
+    <row data-node="db_5.t_order" values="2500, 25, init, null, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="2501, 25, init, 4, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1600, 16, init, 5, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1601, 16, init, 6, test, 2017-08-08" />
@@ -60,7 +60,7 @@
     <row data-node="db_7.t_order" values="2701, 27, init, 12, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1800, 18, init, 13, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1801, 18, init, 14, test, 2017-08-08" />
-    <row data-node="db_8.t_order" values="2800, 28, init, 15, test, 2017-08-08" />
+    <row data-node="db_8.t_order" values="2800, 28, init, null, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="2801, 28, init, 16, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1900, 19, init, 17, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1901, 19, init, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/delete_with_sharding_value.xml b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/delete_with_sharding_value.xml
index be4e9630319..05b2da1adb8 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/delete_with_sharding_value.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/delete_with_sharding_value.xml
@@ -25,7 +25,7 @@
         <column name="creation_date" type="datetime" />
     </metadata>
     <row data-node="db_0.t_order" values="1001, 10, init, 2, test, 2017-08-08" />
-    <row data-node="db_0.t_order" values="2000, 20, init, 3, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="2000, 20, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="2001, 20, init, 4, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1100, 11, init, 5, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1101, 11, init, 6, test, 2017-08-08" />
@@ -45,7 +45,7 @@
     <row data-node="db_4.t_order" values="2401, 24, init, 20, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1500, 15, init, 1, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1501, 15, init, 2, test, 2017-08-08" />
-    <row data-node="db_5.t_order" values="2500, 25, init, 3, test, 2017-08-08" />
+    <row data-node="db_5.t_order" values="2500, 25, init, null, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="2501, 25, init, 4, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1600, 16, init, 5, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1601, 16, init, 6, test, 2017-08-08" />
@@ -57,7 +57,7 @@
     <row data-node="db_7.t_order" values="2701, 27, init, 12, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1800, 18, init, 13, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1801, 18, init, 14, test, 2017-08-08" />
-    <row data-node="db_8.t_order" values="2800, 28, init, 15, test, 2017-08-08" />
+    <row data-node="db_8.t_order" values="2800, 28, init, null, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="2801, 28, init, 16, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1900, 19, init, 17, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1901, 19, init, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_for_order_1.xml b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_for_order_1.xml
index 09714895127..3b1da38f0d0 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_for_order_1.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_for_order_1.xml
@@ -24,9 +24,9 @@
         <column name="remark" type="varchar" />
         <column name="creation_date" type="datetime" />
     </metadata>
-    <row data-node="db_0.t_order" values="1000, 10, init, 1, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="1000, 10, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="1001, 10, init, 2, test, 2017-08-08" />
-    <row data-node="db_0.t_order" values="2000, 20, init, 3, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="2000, 20, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="2001, 20, init, 4, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1, 1, insert, 1, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1100, 11, init, 5, test, 2017-08-08" />
@@ -47,7 +47,7 @@
     <row data-node="db_4.t_order" values="2401, 24, init, 20, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1500, 15, init, 1, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1501, 15, init, 2, test, 2017-08-08" />
-    <row data-node="db_5.t_order" values="2500, 25, init, 3, test, 2017-08-08" />
+    <row data-node="db_5.t_order" values="2500, 25, init, null, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="2501, 25, init, 4, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1600, 16, init, 5, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1601, 16, init, 6, test, 2017-08-08" />
@@ -59,7 +59,7 @@
     <row data-node="db_7.t_order" values="2701, 27, init, 12, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1800, 18, init, 13, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1801, 18, init, 14, test, 2017-08-08" />
-    <row data-node="db_8.t_order" values="2800, 28, init, 15, test, 2017-08-08" />
+    <row data-node="db_8.t_order" values="2800, 28, init, null, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="2801, 28, init, 16, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1900, 19, init, 17, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1901, 19, init, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_for_order_2.xml b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_for_order_2.xml
index 56496550ba8..d61a54bd6ed 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_for_order_2.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_for_order_2.xml
@@ -24,9 +24,9 @@
         <column name="remark" type="varchar" />
         <column name="creation_date" type="datetime" />
     </metadata>
-    <row data-node="db_0.t_order" values="1000, 10, init, 1, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="1000, 10, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="1001, 10, init, 2, test, 2017-08-08" />
-    <row data-node="db_0.t_order" values="2000, 20, init, 3, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="2000, 20, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="2001, 20, init, 4, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1100, 11, init, 5, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1101, 11, init, 6, test, 2017-08-08" />
@@ -47,7 +47,7 @@
     <row data-node="db_4.t_order" values="2401, 24, init, 20, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1500, 15, init, 1, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1501, 15, init, 2, test, 2017-08-08" />
-    <row data-node="db_5.t_order" values="2500, 25, init, 3, test, 2017-08-08" />
+    <row data-node="db_5.t_order" values="2500, 25, init, null, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="2501, 25, init, 4, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1600, 16, init, 5, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1601, 16, init, 6, test, 2017-08-08" />
@@ -59,7 +59,7 @@
     <row data-node="db_7.t_order" values="2701, 27, init, 12, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1800, 18, init, 13, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1801, 18, init, 14, test, 2017-08-08" />
-    <row data-node="db_8.t_order" values="2800, 28, init, 15, test, 2017-08-08" />
+    <row data-node="db_8.t_order" values="2800, 28, init, null, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="2801, 28, init, 16, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1900, 19, init, 17, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1901, 19, init, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_multiple_values_for_order_1_2.xml b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_multiple_values_for_order_1_2.xml
index b37937973f2..4d0aa3bbf1c 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_multiple_values_for_order_1_2.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_multiple_values_for_order_1_2.xml
@@ -24,9 +24,9 @@
         <column name="remark" type="varchar" />
         <column name="creation_date" type="datetime" />
     </metadata>
-    <row data-node="db_0.t_order" values="1000, 10, init, 1, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="1000, 10, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="1001, 10, init, 2, test, 2017-08-08" />
-    <row data-node="db_0.t_order" values="2000, 20, init, 3, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="2000, 20, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="2001, 20, init, 4, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1, 1, insert, 1, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1100, 11, init, 5, test, 2017-08-08" />
@@ -48,7 +48,7 @@
     <row data-node="db_4.t_order" values="2401, 24, init, 20, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1500, 15, init, 1, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1501, 15, init, 2, test, 2017-08-08" />
-    <row data-node="db_5.t_order" values="2500, 25, init, 3, test, 2017-08-08" />
+    <row data-node="db_5.t_order" values="2500, 25, init, null, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="2501, 25, init, 4, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1600, 16, init, 5, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1601, 16, init, 6, test, 2017-08-08" />
@@ -60,7 +60,7 @@
     <row data-node="db_7.t_order" values="2701, 27, init, 12, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1800, 18, init, 13, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1801, 18, init, 14, test, 2017-08-08" />
-    <row data-node="db_8.t_order" values="2800, 28, init, 15, test, 2017-08-08" />
+    <row data-node="db_8.t_order" values="2800, 28, init, null, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="2801, 28, init, 16, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1900, 19, init, 17, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1901, 19, init, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_on_duplicate_key_update.xml b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_on_duplicate_key_update.xml
index bb22656edf6..ae6c4818695 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_on_duplicate_key_update.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/insert_on_duplicate_key_update.xml
@@ -24,9 +24,9 @@
         <column name="remark" type="varchar" />
         <column name="creation_date" type="datetime" />
     </metadata>
-    <row data-node="db_0.t_order" values="1000, 10, update, 1, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="1000, 10, update, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="1001, 10, init, 2, test, 2017-08-08" />
-    <row data-node="db_0.t_order" values="2000, 20, init, 3, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="2000, 20, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="2001, 20, init, 4, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1100, 11, init, 5, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1101, 11, init, 6, test, 2017-08-08" />
@@ -46,7 +46,7 @@
     <row data-node="db_4.t_order" values="2401, 24, init, 20, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1500, 15, init, 1, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1501, 15, init, 2, test, 2017-08-08" />
-    <row data-node="db_5.t_order" values="2500, 25, init, 3, test, 2017-08-08" />
+    <row data-node="db_5.t_order" values="2500, 25, init, null, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="2501, 25, init, 4, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1600, 16, init, 5, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1601, 16, init, 6, test, 2017-08-08" />
@@ -58,7 +58,7 @@
     <row data-node="db_7.t_order" values="2701, 27, init, 12, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1800, 18, init, 13, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1801, 18, init, 14, test, 2017-08-08" />
-    <row data-node="db_8.t_order" values="2800, 28, init, 15, test, 2017-08-08" />
+    <row data-node="db_8.t_order" values="2800, 28, init, null, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="2801, 28, init, 16, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1900, 19, init, 17, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1901, 19, init, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update.xml b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update.xml
index cae75423a13..b0d65f2a6d4 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update.xml
@@ -24,9 +24,9 @@
         <column name="remark" type="varchar" />
         <column name="creation_date" type="datetime" />
     </metadata>
-    <row data-node="db_0.t_order" values="1000, 10, update, 1, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="1000, 10, update, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="1001, 10, init, 2, test, 2017-08-08" />
-    <row data-node="db_0.t_order" values="2000, 20, init, 3, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="2000, 20, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="2001, 20, init, 4, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1100, 11, init, 5, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1101, 11, init, 6, test, 2017-08-08" />
@@ -46,7 +46,7 @@
     <row data-node="db_4.t_order" values="2401, 24, init, 20, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1500, 15, init, 1, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1501, 15, init, 2, test, 2017-08-08" />
-    <row data-node="db_5.t_order" values="2500, 25, init, 3, test, 2017-08-08" />
+    <row data-node="db_5.t_order" values="2500, 25, init, null, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="2501, 25, init, 4, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1600, 16, init, 5, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1601, 16, init, 6, test, 2017-08-08" />
@@ -58,7 +58,7 @@
     <row data-node="db_7.t_order" values="2701, 27, init, 12, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1800, 18, init, 13, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1801, 18, init, 14, test, 2017-08-08" />
-    <row data-node="db_8.t_order" values="2800, 28, init, 15, test, 2017-08-08" />
+    <row data-node="db_8.t_order" values="2800, 28, init, null, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="2801, 28, init, 16, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1900, 19, init, 17, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1901, 19, init, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update_with_column_equal_column.xml b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update_with_column_equal_column.xml
index b4273a8763f..735785137ff 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update_with_column_equal_column.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update_with_column_equal_column.xml
@@ -24,9 +24,9 @@
         <column name="remark" type="varchar" />
         <column name="creation_date" type="datetime" />
     </metadata>
-    <row data-node="db_0.t_order" values="1000, 10, init, 1, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="1000, 10, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="1001, 10, init, 2, test, 2017-08-08" />
-    <row data-node="db_0.t_order" values="2000, 20, init, 3, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="2000, 20, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="2001, 20, init, 4, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1100, 11, init, 5, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1101, 11, init, 6, test, 2017-08-08" />
@@ -46,7 +46,7 @@
     <row data-node="db_4.t_order" values="2401, 24, init, 20, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1500, 15, init, 1, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1501, 15, init, 2, test, 2017-08-08" />
-    <row data-node="db_5.t_order" values="2500, 25, init, 3, test, 2017-08-08" />
+    <row data-node="db_5.t_order" values="2500, 25, init, null, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="2501, 25, init, 4, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1600, 16, init, 5, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1601, 16, init, 6, test, 2017-08-08" />
@@ -58,7 +58,7 @@
     <row data-node="db_7.t_order" values="2701, 27, init, 12, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1800, 18, init, 13, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1801, 18, init, 14, test, 2017-08-08" />
-    <row data-node="db_8.t_order" values="2800, 28, init, 15, test, 2017-08-08" />
+    <row data-node="db_8.t_order" values="2800, 28, init, null, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="2801, 28, init, 16, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1900, 19, init, 17, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1901, 19, init, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update_without_condition.xml b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update_without_condition.xml
index 3384c097e5b..5651371aaa1 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update_without_condition.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/dml/dataset/db/update_without_condition.xml
@@ -24,9 +24,9 @@
         <column name="remark" type="varchar" />
         <column name="creation_date" type="datetime" />
     </metadata>
-    <row data-node="db_0.t_order" values="1000, 10, finished, 1, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="1000, 10, finished, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="1001, 10, finished, 2, test, 2017-08-08" />
-    <row data-node="db_0.t_order" values="2000, 20, finished, 3, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="2000, 20, finished, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="2001, 20, finished, 4, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1100, 11, finished, 5, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1101, 11, finished, 6, test, 2017-08-08" />
@@ -46,7 +46,7 @@
     <row data-node="db_4.t_order" values="2401, 24, finished, 20, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1500, 15, finished, 1, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1501, 15, finished, 2, test, 2017-08-08" />
-    <row data-node="db_5.t_order" values="2500, 25, finished, 3, test, 2017-08-08" />
+    <row data-node="db_5.t_order" values="2500, 25, finished, null, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="2501, 25, finished, 4, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1600, 16, finished, 5, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1601, 16, finished, 6, test, 2017-08-08" />
@@ -58,7 +58,7 @@
     <row data-node="db_7.t_order" values="2701, 27, finished, 12, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1800, 18, finished, 13, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1801, 18, finished, 14, test, 2017-08-08" />
-    <row data-node="db_8.t_order" values="2800, 28, finished, 15, test, 2017-08-08" />
+    <row data-node="db_8.t_order" values="2800, 28, finished, null, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="2801, 28, finished, 16, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1900, 19, finished, 17, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1901, 19, finished, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml b/test/integration-test/test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml
index 18719cbe0aa..b77c7a62d55 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml
@@ -896,4 +896,60 @@
     <test-case sql="SELECT * FROM t_order_union_view ORDER BY order_id LIMIT 1, 2" db-types="MySQL,openGauss" scenario-types="db">
         <assertion expected-data-source-name="read_dataset" />
     </test-case>
+
+    <test-case sql="SELECT * FROM t_order ORDER BY merchant_id ASC, order_id ASC" db-types="MySQL,PostgreSQL,openGauss,Oracle,SQLServer" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT * FROM t_order ORDER BY merchant_id DESC, order_id DESC" db-types="MySQL,PostgreSQL,openGauss,Oracle,SQLServer" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT * FROM t_order ORDER BY merchant_id ASC, order_id ASC NULLS FIRST" db-types="PostgreSQL,openGauss,Oracle" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT * FROM t_order ORDER BY merchant_id ASC, order_id ASC NULLS LAST" db-types="PostgreSQL,openGauss,Oracle" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT * FROM t_order ORDER BY merchant_id DESC, order_id DESC NULLS FIRST" db-types="PostgreSQL,openGauss,Oracle" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT * FROM t_order ORDER BY merchant_id DESC, order_id DESC NULLS LAST" db-types="PostgreSQL,openGauss,Oracle" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT merchant_id, COUNT(1) AS count FROM t_order GROUP BY merchant_id ORDER BY merchant_id ASC" db-types="MySQL,PostgreSQL,openGauss,Oracle,SQLServer" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT merchant_id, COUNT(1) AS count FROM t_order GROUP BY merchant_id ORDER BY merchant_id DESC" db-types="MySQL,PostgreSQL,openGauss,Oracle,SQLServer" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT merchant_id, COUNT(1) AS count FROM t_order GROUP BY merchant_id ORDER BY order_id ASC" db-types="MySQL" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT merchant_id, COUNT(1) AS count FROM t_order GROUP BY merchant_id ORDER BY order_id DESC" db-types="MySQL" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+    
+    <test-case sql="SELECT merchant_id, COUNT(1) AS count FROM t_order GROUP BY merchant_id ORDER BY merchant_id ASC NULLS FIRST" db-types="PostgreSQL,openGauss,Oracle" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT merchant_id, COUNT(1) AS count FROM t_order GROUP BY merchant_id ORDER BY merchant_id ASC NULLS LAST" db-types="PostgreSQL,openGauss,Oracle" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT merchant_id, COUNT(1) AS count FROM t_order GROUP BY merchant_id ORDER BY merchant_id DESC NULLS FIRST" db-types="PostgreSQL,openGauss,Oracle" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
+
+    <test-case sql="SELECT merchant_id, COUNT(1) AS count FROM t_order GROUP BY merchant_id ORDER BY merchant_id DESC NULLS LAST" db-types="PostgreSQL,openGauss,Oracle" scenario-types="db">
+        <assertion expected-data-source-name="read_dataset" />
+    </test-case>
 </integration-test-cases>
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/dataset.xml b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/dataset.xml
index 6b93cae23d8..ea7bd2c7dd0 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/dataset.xml
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/dataset.xml
@@ -107,9 +107,9 @@
         <column name="status" type="varchar" />
         <column name="remarks" type="varchar" />
     </metadata>
-    <row data-node="db_0.t_order" values="1000, 10, init, 1, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="1000, 10, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="1001, 10, init, 2, test, 2017-08-08" />
-    <row data-node="db_0.t_order" values="2000, 20, init, 3, test, 2017-08-08" />
+    <row data-node="db_0.t_order" values="2000, 20, init, null, test, 2017-08-08" />
     <row data-node="db_0.t_order" values="2001, 20, init, 4, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1100, 11, init, 5, test, 2017-08-08" />
     <row data-node="db_1.t_order" values="1101, 11, init, 6, test, 2017-08-08" />
@@ -129,7 +129,7 @@
     <row data-node="db_4.t_order" values="2401, 24, init, 20, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1500, 15, init, 1, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="1501, 15, init, 2, test, 2017-08-08" />
-    <row data-node="db_5.t_order" values="2500, 25, init, 3, test, 2017-08-08" />
+    <row data-node="db_5.t_order" values="2500, 25, init, null, test, 2017-08-08" />
     <row data-node="db_5.t_order" values="2501, 25, init, 4, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1600, 16, init, 5, test, 2017-08-08" />
     <row data-node="db_6.t_order" values="1601, 16, init, 6, test, 2017-08-08" />
@@ -141,7 +141,7 @@
     <row data-node="db_7.t_order" values="2701, 27, init, 12, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1800, 18, init, 13, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="1801, 18, init, 14, test, 2017-08-08" />
-    <row data-node="db_8.t_order" values="2800, 28, init, 15, test, 2017-08-08" />
+    <row data-node="db_8.t_order" values="2800, 28, init, null, test, 2017-08-08" />
     <row data-node="db_8.t_order" values="2801, 28, init, 16, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1900, 19, init, 17, test, 2017-08-08" />
     <row data-node="db_9.t_order" values="1901, 19, init, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/h2/01-actual-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/h2/01-actual-init.sql
index 8f1c0c3a71b..b5738f68768 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/h2/01-actual-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/h2/01-actual-init.sql
@@ -21,7 +21,7 @@ DROP TABLE IF EXISTS t_product_category CASCADE;
 DROP TABLE IF EXISTS t_country CASCADE;
 DROP TABLE IF EXISTS t_broadcast_table CASCADE;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/mysql/01-actual-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/mysql/01-actual-init.sql
index 70ba2a12f0e..c3bd008bce8 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/mysql/01-actual-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/mysql/01-actual-init.sql
@@ -40,7 +40,7 @@ CREATE DATABASE db_7;
 CREATE DATABASE db_8;
 CREATE DATABASE db_9;
 
-CREATE TABLE db_0.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_0.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_0.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_0.t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_0.t_product (product_id INT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, category_id INT NOT NULL, price DECIMAL NOT NULL, status VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
@@ -53,7 +53,7 @@ CREATE TABLE db_0.t_order_federate_sharding (order_id_sharding INT NOT NULL, use
 CREATE TABLE db_0.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
 CREATE INDEX order_index_t_order ON db_0.t_order (order_id);
 
-CREATE TABLE db_1.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_1.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_1.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_1.t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_1.t_product_detail (detail_id INT PRIMARY KEY, product_id INT NOT NULL, description VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
@@ -65,56 +65,56 @@ CREATE TABLE db_1.t_order_federate_sharding (order_id_sharding INT NOT NULL, use
 CREATE TABLE db_1.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
 CREATE INDEX order_index_t_order ON db_1.t_order (order_id);
 
-CREATE TABLE db_2.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_2.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_2.t_order (order_id);
 
-CREATE TABLE db_3.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_3.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_3.t_order (order_id);
 
-CREATE TABLE db_4.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_4.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_4.t_order (order_id);
 
-CREATE TABLE db_5.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_5.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_5.t_order (order_id);
 
-CREATE TABLE db_6.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_6.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_6.t_order (order_id);
 
-CREATE TABLE db_7.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_7.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_7.t_order (order_id);
 
-CREATE TABLE db_8.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_8.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_8.t_order (order_id);
 
-CREATE TABLE db_9.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_9.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_9.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_9.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_9.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/opengauss/01-actual-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/opengauss/01-actual-init.sql
index f7a3d91cecb..87ce38f54ff 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/opengauss/01-actual-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/opengauss/01-actual-init.sql
@@ -51,7 +51,7 @@ DROP TABLE IF EXISTS t_order_federate;
 DROP TABLE IF EXISTS t_order_federate_sharding;
 DROP TABLE IF EXISTS t_order_item_federate_sharding;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product (product_id INT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, category_id INT NOT NULL, price DECIMAL NOT NULL, status VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
@@ -77,7 +77,7 @@ DROP TABLE IF EXISTS t_order_item_federate;
 DROP TABLE IF EXISTS t_order_federate_sharding;
 DROP TABLE IF EXISTS t_order_item_federate_sharding;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_detail (detail_id INT PRIMARY KEY, product_id INT NOT NULL, description VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
@@ -97,7 +97,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -112,7 +112,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -127,7 +127,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -142,7 +142,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -157,7 +157,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -172,7 +172,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -187,7 +187,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -202,7 +202,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/oracle/01-actual-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/oracle/01-actual-init.sql
index 2a044abf7d3..b52aa8f12a3 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/oracle/01-actual-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/oracle/01-actual-init.sql
@@ -37,7 +37,7 @@ CREATE SCHEMA db_7;
 CREATE SCHEMA db_8;
 CREATE SCHEMA db_9;
 
-CREATE TABLE db_0.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_0.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_0.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_0.t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_0.t_product (product_id INT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, category_id INT NOT NULL, price DECIMAL NOT NULL, status VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
@@ -50,7 +50,7 @@ CREATE TABLE db_0.t_order_federate_sharding (order_id_sharding INT NOT NULL, use
 CREATE TABLE db_0.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
 CREATE INDEX order_index_t_order ON db_0.t_order (order_id);
 
-CREATE TABLE db_1.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_1.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_1.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_1.t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_1.t_product_detail (detail_id INT PRIMARY KEY, product_id INT NOT NULL, description VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
@@ -62,56 +62,56 @@ CREATE TABLE db_1.t_order_federate_sharding (order_id_sharding INT NOT NULL, use
 CREATE TABLE db_1.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
 CREATE INDEX order_index_t_order ON db_1.t_order (order_id);
 
-CREATE TABLE db_2.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_2.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_2.t_order (order_id);
 
-CREATE TABLE db_3.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_3.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_3.t_order (order_id);
 
-CREATE TABLE db_4.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_4.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_4.t_order (order_id);
 
-CREATE TABLE db_5.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_5.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_5.t_order (order_id);
 
-CREATE TABLE db_6.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_6.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_6.t_order (order_id);
 
-CREATE TABLE db_7.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_7.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_7.t_order (order_id);
 
-CREATE TABLE db_8.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_8.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_8.t_order (order_id);
 
-CREATE TABLE db_9.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_9.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_9.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_9.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_9.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/postgresql/01-actual-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/postgresql/01-actual-init.sql
index 7bccb1569e9..f113b6c5cf5 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/postgresql/01-actual-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/postgresql/01-actual-init.sql
@@ -51,7 +51,7 @@ DROP TABLE IF EXISTS t_order_federate;
 DROP TABLE IF EXISTS t_order_federate_sharding;
 DROP TABLE IF EXISTS t_order_item_federate_sharding;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product (product_id INT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, category_id INT NOT NULL, price DECIMAL NOT NULL, status VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
@@ -77,7 +77,7 @@ DROP TABLE IF EXISTS t_order_item_federate;
 DROP TABLE IF EXISTS t_order_federate_sharding;
 DROP TABLE IF EXISTS t_order_item_federate_sharding;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_detail (detail_id INT PRIMARY KEY, product_id INT NOT NULL, description VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
@@ -97,7 +97,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level SMALLINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -112,7 +112,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level SMALLINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -127,7 +127,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level SMALLINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -142,7 +142,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level SMALLINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -157,7 +157,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level SMALLINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -172,7 +172,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level SMALLINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -187,7 +187,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level SMALLINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
@@ -202,7 +202,7 @@ DROP TABLE IF EXISTS t_product_category;
 DROP TABLE IF EXISTS t_country;
 DROP TABLE IF EXISTS t_broadcast_table;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level SMALLINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/sqlserver/01-actual-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/sqlserver/01-actual-init.sql
index 037719ead1b..9262e368a90 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/sqlserver/01-actual-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/actual/init-sql/sqlserver/01-actual-init.sql
@@ -37,7 +37,7 @@ CREATE DATABASE db_7;
 CREATE DATABASE db_8;
 CREATE DATABASE db_9;
 
-CREATE TABLE db_0.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_0.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_0.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_0.t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_0.t_product (product_id INT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, category_id INT NOT NULL, price DECIMAL NOT NULL, status VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
@@ -50,7 +50,7 @@ CREATE TABLE db_0.t_order_federate_sharding (order_id_sharding INT NOT NULL, use
 CREATE TABLE db_0.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
 CREATE INDEX order_index_t_order ON db_0.t_order (order_id);
 
-CREATE TABLE db_1.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_1.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_1.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_1.t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_1.t_product_detail (detail_id INT PRIMARY KEY, product_id INT NOT NULL, description VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
@@ -62,56 +62,56 @@ CREATE TABLE db_1.t_order_federate_sharding (order_id_sharding INT NOT NULL, use
 CREATE TABLE db_1.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
 CREATE INDEX order_index_t_order ON db_1.t_order (order_id);
 
-CREATE TABLE db_2.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_2.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_2.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_2.t_order (order_id);
 
-CREATE TABLE db_3.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_3.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_3.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_3.t_order (order_id);
 
-CREATE TABLE db_4.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_4.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_4.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_4.t_order (order_id);
 
-CREATE TABLE db_5.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_5.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_5.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_5.t_order (order_id);
 
-CREATE TABLE db_6.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_6.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_6.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_6.t_order (order_id);
 
-CREATE TABLE db_7.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_7.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_7.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_7.t_order (order_id);
 
-CREATE TABLE db_8.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_8.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
 CREATE TABLE db_8.t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
 CREATE INDEX order_index_t_order ON db_8.t_order (order_id);
 
-CREATE TABLE db_9.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE db_9.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_9.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_9.t_product_category (category_id INT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level TINYINT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE db_9.t_country (country_id SMALLINT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/dataset.xml b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/dataset.xml
index 7fd534eae4f..53d483b5d4a 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/dataset.xml
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/dataset.xml
@@ -107,9 +107,9 @@
         <column name="status" type="varchar" />
         <column name="remarks" type="varchar" />
     </metadata>
-    <row data-node="expected_dataset.t_order" values="1000, 10, init, 1, test, 2017-08-08" />
+    <row data-node="expected_dataset.t_order" values="1000, 10, init, null, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1001, 10, init, 2, test, 2017-08-08" />
-    <row data-node="expected_dataset.t_order" values="2000, 20, init, 3, test, 2017-08-08" />
+    <row data-node="expected_dataset.t_order" values="2000, 20, init, null, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="2001, 20, init, 4, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1100, 11, init, 5, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1101, 11, init, 6, test, 2017-08-08" />
@@ -129,7 +129,7 @@
     <row data-node="expected_dataset.t_order" values="2401, 24, init, 20, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1500, 15, init, 1, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1501, 15, init, 2, test, 2017-08-08" />
-    <row data-node="expected_dataset.t_order" values="2500, 25, init, 3, test, 2017-08-08" />
+    <row data-node="expected_dataset.t_order" values="2500, 25, init, null, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="2501, 25, init, 4, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1600, 16, init, 5, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1601, 16, init, 6, test, 2017-08-08" />
@@ -141,7 +141,7 @@
     <row data-node="expected_dataset.t_order" values="2701, 27, init, 12, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1800, 18, init, 13, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1801, 18, init, 14, test, 2017-08-08" />
-    <row data-node="expected_dataset.t_order" values="2800, 28, init, 15, test, 2017-08-08" />
+    <row data-node="expected_dataset.t_order" values="2800, 28, init, null, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="2801, 28, init, 16, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1900, 19, init, 17, test, 2017-08-08" />
     <row data-node="expected_dataset.t_order" values="1901, 19, init, 18, test, 2017-08-08" />
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/h2/01-expected-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/h2/01-expected-init.sql
index 293ee373429..386bc0f98fe 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/h2/01-expected-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/h2/01-expected-init.sql
@@ -35,7 +35,7 @@ DROP TABLE IF EXISTS t_order_item_federate CASCADE;
 DROP TABLE IF EXISTS t_order_federate_sharding CASCADE;
 DROP TABLE IF EXISTS t_order_item_federate_sharding CASCADE;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/mysql/01-expected-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/mysql/01-expected-init.sql
index d5109523e4c..5b07c53cc7b 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/mysql/01-expected-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/mysql/01-expected-init.sql
@@ -21,7 +21,7 @@ SET character_set_server='utf8';
 DROP DATABASE IF EXISTS expected_dataset;
 CREATE DATABASE expected_dataset;
 
-CREATE TABLE expected_dataset.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE expected_dataset.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE expected_dataset.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE expected_dataset.t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE expected_dataset.t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/opengauss/01-expected-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/opengauss/01-expected-init.sql
index 40e34709777..6202d9e870d 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/opengauss/01-expected-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/opengauss/01-expected-init.sql
@@ -42,7 +42,7 @@ DROP TABLE IF EXISTS t_order_item_federate;
 DROP TABLE IF EXISTS t_order_federate_sharding;
 DROP TABLE IF EXISTS t_order_item_federate_sharding;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/oracle/01-expected-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/oracle/01-expected-init.sql
index 63f7cc50dd3..0f2f848c675 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/oracle/01-expected-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/oracle/01-expected-init.sql
@@ -18,7 +18,7 @@
 DROP SCHEMA expected_dataset;
 CREATE SCHEMA expected_dataset;
 
-CREATE TABLE expected_dataset.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE expected_dataset.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE expected_dataset.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE expected_dataset.t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE expected_dataset.t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/postgresql/01-expected-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/postgresql/01-expected-init.sql
index 167eadd8062..63f23297ee7 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/postgresql/01-expected-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/postgresql/01-expected-init.sql
@@ -42,7 +42,7 @@ DROP TABLE IF EXISTS t_order_item_federate;
 DROP TABLE IF EXISTS t_order_federate_sharding;
 DROP TABLE IF EXISTS t_order_item_federate_sharding;
 
-CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
diff --git a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/sqlserver/01-expected-init.sql b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/sqlserver/01-expected-init.sql
index 98d2b4f7a2f..bc6924d31fb 100644
--- a/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/sqlserver/01-expected-init.sql
+++ b/test/integration-test/test-suite/src/test/resources/env/scenario/db/data/expected/init-sql/sqlserver/01-expected-init.sql
@@ -18,7 +18,7 @@
 DROP DATABASE IF EXISTS expected_dataset;
 CREATE DATABASE expected_dataset;
 
-CREATE TABLE expected_dataset.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE expected_dataset.t_order (order_id BIGINT PRIMARY KEY, user_id INT NOT NULL, status VARCHAR(50) NOT NULL, merchant_id INT, remark VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE expected_dataset.t_order_item (item_id BIGINT PRIMARY KEY, order_id BIGINT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE expected_dataset.t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);
 CREATE TABLE expected_dataset.t_merchant (merchant_id INT PRIMARY KEY, country_id SMALLINT NOT NULL, merchant_name VARCHAR(50) NOT NULL, business_code VARCHAR(50) NOT NULL, telephone CHAR(11) NOT NULL, creation_date DATE NOT NULL);