0

SQLiteデータベースで作成した次のテーブル:

CREATE TABLE [tickets] (
[id] INTEGER  PRIMARY KEY AUTOINCREMENT NOT NULL,
[coupon_id] INTEGER  NULL,
[size] FLOAT  NULL,
[phone] VARCHAR(10)  NULL,
[date] DATE DEFAULT CURRENT_DATE NULL,
[time] TIME DEFAULT CURRENT_TIME NULL,
[product] TEXT  NULL
);

今、私はこのテーブルをmysqlで変換します

CREATE TABLE tickets (
id INTEGER  PRIMARY KEY AUTO_INCREMENT NOT NULL,
coupon_id INTEGER  NULL,
size FLOAT  NULL,
phone VARCHAR(10)  NULL,
date TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL,
time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL,
product TEXT  NULL
);

INSERT INTO "tickets" VALUES(429,9,18.16,'949-893-5032','2010-11-30','17:46:39','Kids’ Kups Berry Interesting™');
INSERT INTO "tickets" VALUES(430,9,12.04,'847-188-1359','2010-11-25','10:54:00','Raspberry Collider™');
INSERT INTO "tickets" VALUES(431,9,14.1,'204-682-5560','2010-12-08','15:34:07','Celestial Cherry High™');

これらの値を挿入すると、エラーが発生しましたERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause.

SQLiteにこれらすべての値を挿入することはできますが、MySQLにこれらすべての値を挿入することはできません。助けて?

4

2 に答える 2

0

あなたは変換したいかもしれません

date TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL,
time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL,

created TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL,

SQLite の値を連結するか、型を変更します

date date DEFAULT NULL,
time time DEFAULT NULL,

現在の日付/時刻をトリガーで追加します。

于 2011-11-08T09:35:33.200 に答える
0

私の知る限り、MySQL はこれを許可しません。現在の時刻を 2 番目のフィールドに挿入する場合は、挿入時にトリガーを使用してレコードを更新することを検討してください。

DELIMITER $$
CREATE TRIGGER curtime BEFORE INSERT ON tickets FOR EACH ROW
BEGIN
SET NEW.time = CURRENT_TIMESTAMP();
END;
$$
DELIMITER ;
于 2011-11-08T09:33:26.880 に答える