Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dlink
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhaowei
dlink
Commits
88759b3e
Commit
88759b3e
authored
Apr 04, 2022
by
zhu-mingye
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix Document
parent
44ce1e47
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
43 additions
and
24 deletions
+43
-24
DingTalkTest.java
.../src/test/java/com/dlink/alert/dingtalk/DingTalkTest.java
+3
-3
EmailConstants.java
...l/src/main/java/com/dlink/alert/email/EmailConstants.java
+1
-1
EmailSenderTest.java
.../src/test/java/com/dlink/alert/email/EmailSenderTest.java
+1
-1
FeiShuSenderTest.java
...rc/test/java/com.dlink.alert.feishu/FeiShuSenderTest.java
+3
-3
WeChatSenderTest.java
...rc/test/java/com/dlink/alert/wechat/WeChatSenderTest.java
+4
-4
dlink.sql
dlink-doc/sql/dlink.sql
+0
-1
index.html
docs/index.html
+20
-0
warning.md
docs/zh-CN/administrator-guide/registerCenter/warning.md
+1
-1
hive.md
docs/zh-CN/extend/hive.md
+9
-9
yarnsubmit.md
docs/zh-CN/practice/yarnsubmit.md
+1
-1
No files found.
dlink-alert/dlink-alert-dingtalk/src/test/java/com/dlink/alert/dingtalk/DingTalkTest.java
View file @
88759b3e
...
@@ -43,7 +43,7 @@ public class DingTalkTest {
...
@@ -43,7 +43,7 @@ public class DingTalkTest {
@Before
@Before
public
void
initDingTalkConfig
()
{
public
void
initDingTalkConfig
()
{
config
.
put
(
DingTalkConstants
.
KEYWORD
,
"D
l
inky-Fink 钉钉告警测试"
);
config
.
put
(
DingTalkConstants
.
KEYWORD
,
"Dinky-Fink 钉钉告警测试"
);
config
.
put
(
DingTalkConstants
.
WEB_HOOK
,
"url"
);
config
.
put
(
DingTalkConstants
.
WEB_HOOK
,
"url"
);
config
.
put
(
DingTalkConstants
.
MSG_TYPE
,
ShowType
.
MARKDOWN
.
getValue
());
config
.
put
(
DingTalkConstants
.
MSG_TYPE
,
ShowType
.
MARKDOWN
.
getValue
());
...
@@ -57,7 +57,7 @@ public class DingTalkTest {
...
@@ -57,7 +57,7 @@ public class DingTalkTest {
public
void
sendMarkDownMsgTest
()
{
public
void
sendMarkDownMsgTest
()
{
AlertConfig
config
=
AlertConfig
.
build
(
"MarkDownTest"
,
"DingTalk"
,
DingTalkTest
.
config
);
AlertConfig
config
=
AlertConfig
.
build
(
"MarkDownTest"
,
"DingTalk"
,
DingTalkTest
.
config
);
Alert
alert
=
Alert
.
build
(
config
);
Alert
alert
=
Alert
.
build
(
config
);
AlertResult
result
=
alert
.
send
(
"D
l
inky钉钉告警测试"
,
contentTest
);
AlertResult
result
=
alert
.
send
(
"Dinky钉钉告警测试"
,
contentTest
);
Assert
.
assertEquals
(
true
,
result
.
getSuccess
());
Assert
.
assertEquals
(
true
,
result
.
getSuccess
());
}
}
...
@@ -66,7 +66,7 @@ public class DingTalkTest {
...
@@ -66,7 +66,7 @@ public class DingTalkTest {
config
.
put
(
DingTalkConstants
.
MSG_TYPE
,
ShowType
.
TEXT
.
getValue
());
config
.
put
(
DingTalkConstants
.
MSG_TYPE
,
ShowType
.
TEXT
.
getValue
());
AlertConfig
config
=
AlertConfig
.
build
(
"TextMsgTest"
,
"DingTalk"
,
DingTalkTest
.
config
);
AlertConfig
config
=
AlertConfig
.
build
(
"TextMsgTest"
,
"DingTalk"
,
DingTalkTest
.
config
);
Alert
alert
=
Alert
.
build
(
config
);
Alert
alert
=
Alert
.
build
(
config
);
AlertResult
result
=
alert
.
send
(
"D
l
inky钉钉告警测试"
,
contentTest
);
AlertResult
result
=
alert
.
send
(
"Dinky钉钉告警测试"
,
contentTest
);
Assert
.
assertEquals
(
true
,
result
.
getSuccess
());
Assert
.
assertEquals
(
true
,
result
.
getSuccess
());
}
}
...
...
dlink-alert/dlink-alert-email/src/main/java/com/dlink/alert/email/EmailConstants.java
View file @
88759b3e
...
@@ -78,7 +78,7 @@ public final class EmailConstants {
...
@@ -78,7 +78,7 @@ public final class EmailConstants {
public
static
final
String
HTML_HEADER_PREFIX
=
"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>"
public
static
final
String
HTML_HEADER_PREFIX
=
"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>"
+
"<html>"
+
"<html>"
+
"<head>"
+
"<head>"
+
"<title>D
l
inky</title>"
+
"<title>Dinky</title>"
+
"<meta name='Keywords' content=''>"
+
"<meta name='Keywords' content=''>"
+
"<meta name='Description' content=''>"
+
"<meta name='Description' content=''>"
+
"<style type=\"text/css\">"
+
"<style type=\"text/css\">"
...
...
dlink-alert/dlink-alert-email/src/test/java/com/dlink/alert/email/EmailSenderTest.java
View file @
88759b3e
...
@@ -19,7 +19,7 @@ public class EmailSenderTest {
...
@@ -19,7 +19,7 @@ public class EmailSenderTest {
private
static
Map
<
String
,
String
>
emailConfig
=
new
HashMap
<>();
private
static
Map
<
String
,
String
>
emailConfig
=
new
HashMap
<>();
private
static
AlertTemplate
alertTemplate
;
private
static
AlertTemplate
alertTemplate
;
String
title
=
"D
l
inky Email Alert"
;
String
title
=
"Dinky Email Alert"
;
String
content
=
"[{\"id\":\"69\","
String
content
=
"[{\"id\":\"69\","
+
"\"name\":\"UserBehavior-0--1193959466\","
+
"\"name\":\"UserBehavior-0--1193959466\","
+
"\"Job name\": \"Start workflow\","
+
"\"Job name\": \"Start workflow\","
...
...
dlink-alert/dlink-alert-feishu/src/test/java/com.dlink.alert.feishu/FeiShuSenderTest.java
View file @
88759b3e
...
@@ -40,7 +40,7 @@ public class FeiShuSenderTest {
...
@@ -40,7 +40,7 @@ public class FeiShuSenderTest {
@Before
@Before
public
void
initFeiShuConfig
()
{
public
void
initFeiShuConfig
()
{
feiShuConfig
.
put
(
FeiShuConstants
.
WEB_HOOK
,
"https://open.feishu.cn/open-apis/bot/v2/hook/aea3cd7f13154854541dsadsadas08f2a9"
);
feiShuConfig
.
put
(
FeiShuConstants
.
WEB_HOOK
,
"https://open.feishu.cn/open-apis/bot/v2/hook/aea3cd7f13154854541dsadsadas08f2a9"
);
feiShuConfig
.
put
(
FeiShuConstants
.
KEY_WORD
,
"D
l
inky 飞书WebHook 告警测试"
);
feiShuConfig
.
put
(
FeiShuConstants
.
KEY_WORD
,
"Dinky 飞书WebHook 告警测试"
);
feiShuConfig
.
put
(
FeiShuConstants
.
MSG_TYPE
,
"text"
);
feiShuConfig
.
put
(
FeiShuConstants
.
MSG_TYPE
,
"text"
);
feiShuConfig
.
put
(
FeiShuConstants
.
AT_ALL
,
"false"
);
feiShuConfig
.
put
(
FeiShuConstants
.
AT_ALL
,
"false"
);
feiShuConfig
.
put
(
FeiShuConstants
.
AT_USERS
,
"user1,user2,user3"
);
feiShuConfig
.
put
(
FeiShuConstants
.
AT_USERS
,
"user1,user2,user3"
);
...
@@ -49,7 +49,7 @@ public class FeiShuSenderTest {
...
@@ -49,7 +49,7 @@ public class FeiShuSenderTest {
@Test
@Test
public
void
testTextTypeSend
()
{
public
void
testTextTypeSend
()
{
AlertMsg
alertMsg
=
new
AlertMsg
();
AlertMsg
alertMsg
=
new
AlertMsg
();
alertMsg
.
setName
(
"D
l
inky 飞书WebHook 告警测试"
);
alertMsg
.
setName
(
"Dinky 飞书WebHook 告警测试"
);
alertMsg
.
setContent
(
alertMsgContentTemplate
);
alertMsg
.
setContent
(
alertMsgContentTemplate
);
FeiShuSender
feiShuSender
=
new
FeiShuSender
(
feiShuConfig
);
FeiShuSender
feiShuSender
=
new
FeiShuSender
(
feiShuConfig
);
AlertResult
alertResult
=
feiShuSender
.
send
(
alertMsg
.
getName
(),
alertMsg
.
getContent
());
AlertResult
alertResult
=
feiShuSender
.
send
(
alertMsg
.
getName
(),
alertMsg
.
getContent
());
...
@@ -60,7 +60,7 @@ public class FeiShuSenderTest {
...
@@ -60,7 +60,7 @@ public class FeiShuSenderTest {
public
void
testPostTypeSend
()
{
public
void
testPostTypeSend
()
{
feiShuConfig
.
put
(
FeiShuConstants
.
MSG_TYPE
,
"post"
);
feiShuConfig
.
put
(
FeiShuConstants
.
MSG_TYPE
,
"post"
);
AlertMsg
alertMsg
=
new
AlertMsg
();
AlertMsg
alertMsg
=
new
AlertMsg
();
alertMsg
.
setName
(
"D
l
inky 飞书WebHook 告警测试"
);
alertMsg
.
setName
(
"Dinky 飞书WebHook 告警测试"
);
alertMsg
.
setContent
(
alertMsgContentTemplate
);
alertMsg
.
setContent
(
alertMsgContentTemplate
);
FeiShuSender
feiShuSender
=
new
FeiShuSender
(
feiShuConfig
);
FeiShuSender
feiShuSender
=
new
FeiShuSender
(
feiShuConfig
);
AlertResult
alertResult
=
feiShuSender
.
send
(
alertMsg
.
getName
(),
alertMsg
.
getContent
());
AlertResult
alertResult
=
feiShuSender
.
send
(
alertMsg
.
getName
(),
alertMsg
.
getContent
());
...
...
dlink-alert/dlink-alert-wechat/src/test/java/com/dlink/alert/wechat/WeChatSenderTest.java
View file @
88759b3e
...
@@ -79,7 +79,7 @@ public class WeChatSenderTest {
...
@@ -79,7 +79,7 @@ public class WeChatSenderTest {
@Test
@Test
public
void
testSendAPPMarkDownMsg
()
{
public
void
testSendAPPMarkDownMsg
()
{
WeChatSender
weChatSender
=
new
WeChatSender
(
weChatConfig
);
WeChatSender
weChatSender
=
new
WeChatSender
(
weChatConfig
);
AlertResult
alertResult
=
weChatSender
.
send
(
"D
l
inky企微APP MarkDown方式 告警测试"
,
contentTest
);
AlertResult
alertResult
=
weChatSender
.
send
(
"Dinky企微APP MarkDown方式 告警测试"
,
contentTest
);
Assert
.
assertEquals
(
true
,
alertResult
.
getSuccess
());
Assert
.
assertEquals
(
true
,
alertResult
.
getSuccess
());
}
}
...
@@ -87,7 +87,7 @@ public class WeChatSenderTest {
...
@@ -87,7 +87,7 @@ public class WeChatSenderTest {
public
void
testSendAPPTextMsg
()
{
public
void
testSendAPPTextMsg
()
{
weChatConfig
.
put
(
WeChatConstants
.
SHOW_TYPE
,
ShowType
.
TEXT
.
getValue
());
weChatConfig
.
put
(
WeChatConstants
.
SHOW_TYPE
,
ShowType
.
TEXT
.
getValue
());
WeChatSender
weChatSender
=
new
WeChatSender
(
weChatConfig
);
WeChatSender
weChatSender
=
new
WeChatSender
(
weChatConfig
);
AlertResult
alertResult
=
weChatSender
.
send
(
"D
l
inky企微APP TEXT方式 告警测试"
,
contentTest
);
AlertResult
alertResult
=
weChatSender
.
send
(
"Dinky企微APP TEXT方式 告警测试"
,
contentTest
);
Assert
.
assertEquals
(
true
,
alertResult
.
getSuccess
());
Assert
.
assertEquals
(
true
,
alertResult
.
getSuccess
());
}
}
...
@@ -97,7 +97,7 @@ public class WeChatSenderTest {
...
@@ -97,7 +97,7 @@ public class WeChatSenderTest {
weChatConfig
.
put
(
WeChatConstants
.
SEND_TYPE
,
WeChatType
.
CHAT
.
getValue
());
weChatConfig
.
put
(
WeChatConstants
.
SEND_TYPE
,
WeChatType
.
CHAT
.
getValue
());
weChatConfig
.
put
(
WeChatConstants
.
USER_SEND_MSG
,
WeChatConstants
.
WEBHOOK_TEMPLATE
);
weChatConfig
.
put
(
WeChatConstants
.
USER_SEND_MSG
,
WeChatConstants
.
WEBHOOK_TEMPLATE
);
weChatConfig
.
put
(
WeChatConstants
.
SHOW_TYPE
,
ShowType
.
MARKDOWN
.
getValue
());
weChatConfig
.
put
(
WeChatConstants
.
SHOW_TYPE
,
ShowType
.
MARKDOWN
.
getValue
());
weChatConfig
.
put
(
WeChatConstants
.
KEYWORD
,
"D
l
inky企微WEBHOOK MarkDown方式 告警测试"
);
weChatConfig
.
put
(
WeChatConstants
.
KEYWORD
,
"Dinky企微WEBHOOK MarkDown方式 告警测试"
);
WeChatSender
weChatSender
=
new
WeChatSender
(
weChatConfig
);
WeChatSender
weChatSender
=
new
WeChatSender
(
weChatConfig
);
AlertResult
alertResult
=
weChatSender
.
send
(
"TEXT-TEST"
,
contentTest
);
AlertResult
alertResult
=
weChatSender
.
send
(
"TEXT-TEST"
,
contentTest
);
Assert
.
assertEquals
(
true
,
alertResult
.
getSuccess
());
Assert
.
assertEquals
(
true
,
alertResult
.
getSuccess
());
...
@@ -110,7 +110,7 @@ public class WeChatSenderTest {
...
@@ -110,7 +110,7 @@ public class WeChatSenderTest {
weChatConfig
.
put
(
WeChatConstants
.
SEND_TYPE
,
WeChatType
.
CHAT
.
getValue
());
weChatConfig
.
put
(
WeChatConstants
.
SEND_TYPE
,
WeChatType
.
CHAT
.
getValue
());
weChatConfig
.
put
(
WeChatConstants
.
USER_SEND_MSG
,
WeChatConstants
.
WEBHOOK_TEMPLATE
);
weChatConfig
.
put
(
WeChatConstants
.
USER_SEND_MSG
,
WeChatConstants
.
WEBHOOK_TEMPLATE
);
weChatConfig
.
put
(
WeChatConstants
.
SHOW_TYPE
,
ShowType
.
TEXT
.
getValue
());
weChatConfig
.
put
(
WeChatConstants
.
SHOW_TYPE
,
ShowType
.
TEXT
.
getValue
());
weChatConfig
.
put
(
WeChatConstants
.
KEYWORD
,
"D
l
inky企微WEBHOOK TEXT方式 告警测试"
);
weChatConfig
.
put
(
WeChatConstants
.
KEYWORD
,
"Dinky企微WEBHOOK TEXT方式 告警测试"
);
WeChatSender
weChatSender
=
new
WeChatSender
(
weChatConfig
);
WeChatSender
weChatSender
=
new
WeChatSender
(
weChatConfig
);
AlertResult
alertResult
=
weChatSender
.
send
(
"TEXT-TEST"
,
contentTest
);
AlertResult
alertResult
=
weChatSender
.
send
(
"TEXT-TEST"
,
contentTest
);
Assert
.
assertEquals
(
true
,
alertResult
.
getSuccess
());
Assert
.
assertEquals
(
true
,
alertResult
.
getSuccess
());
...
...
dlink-doc/sql/dlink.sql
View file @
88759b3e
...
@@ -105,7 +105,6 @@ CREATE TABLE `dlink_database` (
...
@@ -105,7 +105,6 @@ CREATE TABLE `dlink_database` (
PRIMARY
KEY
(
`id`
)
USING
BTREE
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
,
UNIQUE
INDEX
`db_index`
(
`name`
)
USING
BTREE
UNIQUE
INDEX
`db_index`
(
`name`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
4
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic
;
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
4
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic
;
#
This
PR
is
mainly
to
execute
only
the
JJ
file
when
the
user
installs
dlinky
for
the
first
time
-- ----------------------------
-- ----------------------------
...
...
docs/index.html
View file @
88759b3e
...
@@ -9,6 +9,13 @@
...
@@ -9,6 +9,13 @@
<link
rel=
"icon"
type=
"image/x-ico"
href=
"./_media/dinky.png"
/>
<link
rel=
"icon"
type=
"image/x-ico"
href=
"./_media/dinky.png"
/>
<link
rel=
"stylesheet"
href=
"//cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css"
>
<link
rel=
"stylesheet"
href=
"//cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css"
>
</head>
</head>
<style>
.footer
{
background-color
:
rgba
(
245
,
245
,
245
,
0.31
);
color
:
#424549
;
padding
:
1rem
1rem
1rem
1rem
;
}
</style>
<body>
<body>
<div
id=
"app"
>
加载中
</div>
<div
id=
"app"
>
加载中
</div>
<script>
<script>
...
@@ -60,6 +67,19 @@
...
@@ -60,6 +67,19 @@
}
}
},
},
sidebarDisplayLevel
:
4
,
sidebarDisplayLevel
:
4
,
plugins
:
[
function
pageFooter
(
hook
,
vm
)
{
var
footer
=
[
'<footer class="footer" style="text-align: center">'
,
'<span ><a href="https://github.com/DataLinkDC/dlink">Dinky</a></span> <a href="https://github.com/DataLinkDC/dlink.git"><image src="_media/github.png"></image></a><br><br>'
,
'<span>©2022 Produced by DataLink Community .</span>'
,
'</footer>'
,
].
join
(
''
);
hook
.
afterEach
(
function
(
html
)
{
return
html
+
footer
;
});
},
],
}
}
</script>
</script>
<!-- Docsify v4 -->
<!-- Docsify v4 -->
...
...
docs/zh-CN/administrator-guide/registerCenter/warning.md
View file @
88759b3e
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
首先要进入
**注册中心**
>
**报警管理**
,然后选择左侧的报警实例管理,创建一个告警实例。然后选择对应的报警插件。然后选择报警组管理,创建一个报警组。
首先要进入
**注册中心**
>
**报警管理**
,然后选择左侧的报警实例管理,创建一个告警实例。然后选择对应的报警插件。然后选择报警组管理,创建一个报警组。
目前D
l
inky支持的报警插件有:
目前Dinky支持的报警插件有:
-
**[钉钉](#钉钉)方式告警 :**
WebHook
-
**[钉钉](#钉钉)方式告警 :**
WebHook
-
**[企业微信](#企业微信)方式告警 :**
包含
**应用**
**群聊**
-
**[企业微信](#企业微信)方式告警 :**
包含
**应用**
**群聊**
-
**[飞书](#飞书)方式告警 :**
WebHook
-
**[飞书](#飞书)方式告警 :**
WebHook
...
...
docs/zh-CN/extend/hive.md
View file @
88759b3e
## 前言
## 前言
最近有很多小伙伴问,D
l
inky 如何连接 Hive 进行数据开发?
最近有很多小伙伴问,Dinky 如何连接 Hive 进行数据开发?
关于 D
l
inky 连接 Hive 的步骤同 Flink 的
`sql-client `
,只不过它没有默认加载的配置文件。下文将详细讲述对 Hive 操作的全过程。
关于 Dinky 连接 Hive 的步骤同 Flink 的
`sql-client `
,只不过它没有默认加载的配置文件。下文将详细讲述对 Hive 操作的全过程。
## 准备工作
## 准备工作
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
| 组件 | 版本 |
| 组件 | 版本 |
|:------:| :----: |
|:------:| :----: |
| D
linky
| 0.3.2 |
| D
inky
| 0.3.2 |
| Flink | 1.12.4 |
| Flink | 1.12.4 |
| Hadoop | 2.7.7 |
| Hadoop | 2.7.7 |
| Hive | 2.3.6 |
| Hive | 2.3.6 |
...
@@ -21,10 +21,10 @@
...
@@ -21,10 +21,10 @@
再来梳理下本教程的各个插件版本:
再来梳理下本教程的各个插件版本:
| 所属组件 | 插件 | 版本 |
| 所属组件 | 插件 | 版本 |
|:-------------
-
:| :------------------------: | :-------------------: |
|:-------------:| :------------------------: | :-------------------: |
| D
l
inky | dlink-client | 1.12 |
| Dinky | dlink-client | 1.12 |
| D
l
inky & Flink | flink-sql-connector-hive | 2.3.6_2.11-1.12.3 |
| Dinky & Flink | flink-sql-connector-hive | 2.3.6_2.11-1.12.3 |
| D
l
inky & Flink | flink-shaded-hadoop-3-uber | 3.1.1.7.2.8.0-224-9.0 |
| Dinky & Flink | flink-shaded-hadoop-3-uber | 3.1.1.7.2.8.0-224-9.0 |
## 部署扩展
## 部署扩展
...
@@ -45,7 +45,7 @@ USE CATALOG myhive;
...
@@ -45,7 +45,7 @@ USE CATALOG myhive;
select
*
from
htest
select
*
from
htest
```
```
在 D
l
inky 编辑器中输入以上 sql ,创建 Hive Catalog,并查询一张表。
在 Dinky 编辑器中输入以上 sql ,创建 Hive Catalog,并查询一张表。
其中,
`hive-conf-dir`
需要指定
`hive-site.xml`
的路径,其他同 Flink 官方解释。
其中,
`hive-conf-dir`
需要指定
`hive-site.xml`
的路径,其他同 Flink 官方解释。
...
...
docs/zh-CN/practice/yarnsubmit.md
View file @
88759b3e
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
### 执行 Hello World
### 执行 Hello World
万物都具有 Hello World 的第一步,当然 D
l
inky 也是具有的。我们选取了基于 datagen 的流查询作为第一行 Flink Sql。具体如下:
万物都具有 Hello World 的第一步,当然 Dinky 也是具有的。我们选取了基于 datagen 的流查询作为第一行 Flink Sql。具体如下:
```
sql
```
sql
CREATE
TABLE
Orders
(
CREATE
TABLE
Orders
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment