SQL查询:
CREATE TABLE mytbl.customer(
CustID int( 10 ) NOT NULL AUTO_INCREMENT ,
FirstName varchar( 40 ) ,
LastName varchar( 40 ) ,
Street varchar( 50 ) ,
City varchar( 40 ) ,
State varchar( 40 ) ,
ZipCode varchar( 5 ) ,
Telephone varchar( 20 ) ,
CellPhone varchar( 20 ) ,
CellCarrier varchar( 20 ) ,
UserName varchar( 20 ) ,
PASSWORD varchar( 10 ) ,
SecretQuestion varchar( 80 ) ,
SecretAnswer varchar( 50 ) ,
UtilityCompanyID int( 10 ) ,
SwUpgrade int( 10 ) DEFAULT 1,
DateToSignIn timestamp DEFAULT 0000 -00 -0000 :00 :00 NOT NULL ,
LastLoginTime timestamp DEFAULT 0000 -00 -0000 :00 :00 NOT NULL ,
STATUS varchar( 20 ) DEFAULT 'Inacitve',
Email1 varchar( 60 ) ,
Email2 varchar( 60 ) ,
PoolID int( 10 ) ,
DeviceID int( 10 ) ,
Last_Modified_Timestamp timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
PRIMARY KEY ( CustID )
) ENGINE = InnoDB DEFAULT CHARSET = latin1;
Phpmyadmin错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-00-00 00:00:00 NOT NULL,
LastLoginTime timestamp DEFAULT 0000-00-00 00:00:00 ' at line 18
知道我可能做错了吗?
答案 0 :(得分:2)
你不应该把这些时间戳默认值放在“”中,即“0000-00-00 00:00:00”吗?
答案 1 :(得分:1)
您的默认时间戳值应该是这样的。
DEFAULT '0000-00-00 00:00:00' NOT NULL
答案 2 :(得分:0)
不确定默认构造的位置,但请尝试:
LastLoginTime timestamp DEFAULT '0000-00-00 00:00:00'
答案 3 :(得分:0)
来自manual
如果为a中的第一个TIMESTAMP列指定了DEFAULT值 表,它不被忽略。默认值可以是CURRENT_TIMESTAMP或a 恒定的日期和时间值。
和
为TIMESTAMP列指定其他自动默认值或更新 比第一个,你必须抑制自动初始化和 显式更新第一个TIMESTAMP列的行为 为其分配一个常量的DEFAULT值
工作查询
CREATE TABLE mytbl.customer(
CustID int( 10 ) NOT NULL AUTO_INCREMENT ,
FirstName varchar( 40 ) ,
LastName varchar( 40 ) ,
Street varchar( 50 ) ,
City varchar( 40 ) ,
State varchar( 40 ) ,
ZipCode varchar( 5 ) ,
Telephone varchar( 20 ) ,
CellPhone varchar( 20 ) ,
CellCarrier varchar( 20 ) ,
UserName varchar( 20 ) ,
PASSWORD varchar( 10 ) ,
SecretQuestion varchar( 80 ) ,
SecretAnswer varchar( 50 ) ,
UtilityCompanyID int( 10 ) ,
SwUpgrade int( 10 ) DEFAULT 1,
DateToSignIn timestamp DEFAULT 0 ,
LastLoginTime timestamp DEFAULT 0,
STATUS varchar( 20 ) DEFAULT 'Inacitve',
Email1 varchar( 60 ) ,
Email2 varchar( 60 ) ,
PoolID int( 10 ) ,
DeviceID int( 10 ) ,
Last_Modified_Timestamp timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
PRIMARY KEY ( CustID )
) ENGINE = InnoDB DEFAULT CHARSET = latin1
答案 4 :(得分:0)
要指定除第一个列以外的TIMESTAMP
列的自动默认值或更新,必须通过显式为其指定常量DEFAULT值来禁止第一个TIMESTAMP列的自动初始化和更新行为(例如,< strong> DEFAULT 0 或 DEFAULT'2003-01-01 00:00:00')。然后,对于另一个TIMESTAMP列,规则与第一个TIMESTAMP列的规则相同,只是如果省略DEFAULT和ON UPDATE子句,则不会自动初始化或更新。