我遇到过几个问题,比如我的问题:
还有其他一些。他们都解释了同样的问题,但他们不是我的问题。
我的问题是我的专栏是datetime NOT NULL
我已经按照表格ID将其作为主键:
PRIMARY KEY (id, start_time)
现在我使用下面的命令对我的表进行分区:
alter table MY_TABLE partition by range (UNIX_TIMESTAMP(start_time)) (
partition p2012 values less than (UNIX_TIMESTAMP('2012-01-01 00:00:00')),
partition p2013 values less than (UNIX_TIMESTAMP('2013-01-01 00:00:00')),
partition p2014 values less than (UNIX_TIMESTAMP('2014-01-01 00:00:00')),
partition p2015 values less than (UNIX_TIMESTAMP('2015-01-01 00:00:00')),
partition p2016 values less than (UNIX_TIMESTAMP('2016-01-01 00:00:00')),
partition p2017 values less than (UNIX_TIMESTAMP('2017-01-01 00:00:00')),
partition pfuture values less than (MAXVALUE));
一切似乎都是正确的,当我describe MY_TABLE
时,它会提供以下信息:
start_time | datetime | NO | PRI | 0000-00-00 00:00:00
当运行上面的命令进行分区时,我得到错误:
ERROR 1486 (HY000): Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
datetime
不依赖于时区,如timestamp
,而不是constant
。这样的错误可能是什么原因?
答案 0 :(得分:0)
...
使用DATE或DATETIME列按RANGE COLUMNS对表进行分区 作为分区栏。
...
尝试:
RewriteCond %{HTTP_HOST} ^www\. [OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R=301]
请参阅db-fiddle。