2014-02-17 68 views
1

我试图将数据库从mysql移植到infinidb.But,而移植时遇到以上错误(在标题中描述)。Infinidb-”`CREATE_TIMESTAMP` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP“给出错误

`CREATE_TIMESTAMP` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 

在mysql中有效,但不在infinidb中。错误是:错误代码:138。 infinidb不支持语法或数据类型。任何帮助将不胜感激。

回答

2

这是您正在尝试的完整SQL语句吗?我能够使用:

create table test (`CREATE_TIMESTAMP` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); 

这里是控制台输出

[[email protected] bin]# idbmysql 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 12 
Server version: 5.1.73 Calpont InfiniDB 4.5 Alpha 

Copyright (c) 2014, InfiniDB, Inc. and/or its affiliates. All rights reserved. 
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 

InfiniDB is a registered trademark of InfiniDB, Inc. and/or its affiliates. 
Oracle is a registered trademark of Oracle Corporation and/or its 
affiliates. Other names may be trademarks of their respective 
owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql> use test; 
Database changed 
mysql> create table test (`CREATE_TIMESTAMP` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); 
Query OK, 0 rows affected (0.00 sec) 

mysql> describe test; 
+------------------+-----------+------+-----+-------------------+-----------------------------+ 
| Field   | Type  | Null | Key | Default   | Extra      | 
+------------------+-----------+------+-----+-------------------+-----------------------------+ 
| CREATE_TIMESTAMP | timestamp | NO |  | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | 
+------------------+-----------+------+-----+-------------------+-----------------------------+ 
1 row in set (0.00 sec) 

mysql> 

让我知道,如果不工作,或者你以不同的方式试图语法。你还想要什么版本的InfiniDB?

谢谢!

2

看起来您不能在InfiniDB中使用timepstamp数据类型。我有同样的版本@mhoglan但它似乎有在该查询出一点差错:

mysql> create table test (`CREATE_TIMESTAMP` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); 
Query OK, 0 rows affected (0.00 sec) 

是缺少“发动机= infinidb;”在最后,这将在infinidb中创建表。 相反,该表是使用MySQL的默认引擎(MyISAM或其中任意一个)创建的。

mysql> create table test (`CREATE_TIMESTAMP` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) engine=infinidb; 
ERROR 138 (HY000): The syntax or the data type(s) is not supported by InfiniDB. Please check the InfiniDB syntax guide for supported syntax or data types. 

正如您所看到的,添加engine = infinidb失败。

如果您可以使用日期时间,可能是要走的路;时间戳目前似乎不支持:(

0

我想这是NOT NULL约束,这是InfiniDB中不允许的。

相关问题