有没有直接能create table as 并且顺便partition by的sql语句呢?

create table xx as相信大家都不陌生,可能应用的时候是这样子:
'''

create table B as(
    select x,x,x
    from A
)

'''
但是我自己尝试过后,并不能在这个语句中加入partition by顺便分区。
想要创建带分区的表的话,(由于我太菜)只能先create table再把字段列上&分区打上,再insert到表里。

问题:有没有直接能create table as 并且顺便partition by的sql语句呢?


根据大佬@范捷琦Jackie 尝试过

create table B as(
    select * from A
) partitioned by  (item_a string)

编译报错FAILED: ParseException line 3:2 missing EOF at 'partitioned' near ')'

阅读 5.4k
1 个回答

根据文档create-table-select是可以的:

CREATE TABLE `users1` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) DEFAULT NULL,
  `age` smallint(5) unsigned DEFAULT NULL,
  `grade` smallint(6) DEFAULT NULL,
  `created_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4
/*!50100 PARTITION BY HASH (id)
PARTITIONS 20 */
SELECT * FROM users
;

希望能帮助到你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏