diff --git a/changelogs/unreleased/gh-8793-rework-sql-defaults.md b/changelogs/unreleased/gh-8793-rework-sql-defaults.md
new file mode 100644
index 0000000000000000000000000000000000000000..0059ec3b16bb164d5df8bfcd7c1cd7b821136aaf
--- /dev/null
+++ b/changelogs/unreleased/gh-8793-rework-sql-defaults.md
@@ -0,0 +1,3 @@
+## feature/sql
+
+* `SHOW CREATE TABLE` no longer supports the DEFAULT clause (gh-8793).
diff --git a/src/box/sql/show.c b/src/box/sql/show.c
index 1047640cf50f7d9df77e380144b24210741b7ec4..aab5c73c56895015815caa4053c4f2827a85fc0e 100644
--- a/src/box/sql/show.c
+++ b/src/box/sql/show.c
@@ -281,8 +281,10 @@ sql_describe_field(struct sql_desc *desc, const struct field_def *field)
 	}
 	if (!field->is_nullable)
 		sql_desc_append(desc, " NOT NULL");
-	if (field->sql_default_value != NULL)
-		sql_desc_append(desc, " DEFAULT(%s)", field->sql_default_value);
+	if (field->default_value != NULL || field->default_func_id != 0) {
+		const char *err = "BOX default values are unsupported";
+		sql_desc_error(desc, "field", field->name, err);
+	}
 	for (uint32_t i = 0; i < field->constraint_count; ++i) {
 		struct tuple_constraint_def *cdef = &field->constraint_def[i];
 		assert(cdef->type == CONSTR_FKEY || cdef->type == CONSTR_FUNC);
diff --git a/test/sql-luatest/defaults_test.lua b/test/sql-luatest/defaults_test.lua
index 198561314857d6ff5be0220546f0bd822f8ffc74..596c0759f616b5f28fd7c0a1177fd16da0a66fe9 100644
--- a/test/sql-luatest/defaults_test.lua
+++ b/test/sql-luatest/defaults_test.lua
@@ -34,3 +34,25 @@ g.test_default_after_add_column = function()
         func:drop()
     end)
 end
+
+-- Make sure default is not supported by SHOW CREATE TABLE.
+g.test_default_in_show_create_table = function()
+    g.server:exec(function()
+        local body = 'function(a) return a + 123 end'
+        local func_def = {is_deterministic = true, body = body}
+        box.schema.func.create('F1', func_def)
+        local format = {{'I', 'integer'}, {'A', 'integer', default = 321,
+                                           default_func = 'F1'}}
+        local s = box.schema.space.create('A', {format = format})
+        s:create_index('ii')
+        local func = box.func.F1
+        t.assert_equals(s:format()[2].default, 321)
+        t.assert_equals(s:format()[2].default_func, func.id)
+        local rows = box.execute([[SHOW CREATE TABLE A;]]).rows
+        local exp = "Problem with field 'A': BOX default values are "..
+                    "unsupported."
+        t.assert_equals(rows[1][2][1], exp)
+        s:drop()
+        func:drop()
+    end)
+end
diff --git a/test/sql-luatest/show_create_table_test.lua b/test/sql-luatest/show_create_table_test.lua
index 579272ead09d278c1aba19f95f3a301d2a1c9261..d263c8e7fa80e11710b64f3d7b5815a943531c2e 100644
--- a/test/sql-luatest/show_create_table_test.lua
+++ b/test/sql-luatest/show_create_table_test.lua
@@ -35,7 +35,7 @@ g.test_show_create_table_one = function()
         local sql = [[CREATE TABLE t(i INT CONSTRAINT c0 PRIMARY KEY,
                                      a STRING CONSTRAINT c1 REFERENCES t(i)
                                      CONSTRAINT c2 UNIQUE,
-                                     b UUID NOT NULL DEFAULT(uuid()),
+                                     b UUID NOT NULL,
                                      CONSTRAINT c3 CHECK(i * a < 100),
                                      CONSTRAINT c4 UNIQUE (a, b),
                                      CONSTRAINT c5 FOREIGN KEY(i, a)
@@ -44,7 +44,7 @@ g.test_show_create_table_one = function()
         box.execute(sql)
         res = {'CREATE TABLE t(\ni INTEGER NOT NULL,\n'..
                'a STRING CONSTRAINT c1 REFERENCES t(i),\n'..
-               'b UUID NOT NULL DEFAULT(uuid()),\n'..
+               'b UUID NOT NULL,\n'..
                'CONSTRAINT c0 PRIMARY KEY(i),\n'..
                'CONSTRAINT c3 CHECK(i * a < 100),\n'..
                'CONSTRAINT c5 FOREIGN KEY(i, a) REFERENCES t(a, b))\n'..