2016-04-22 14 views
0

データベースにエラーが発生しています。私はtimestampの無効なデフォルト値に遭遇しています。どのように私はこれを修正することができます。データベースエラーが無効です。

CREATE TABLE IF NOT EXISTS `thread` (
`id` int(11) NOT NULL, 
    `title` varchar(100) NOT NULL, 
    `dateCreated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `userId` int(11) NOT NULL, 
    `timestamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `categoryId` int(11) NOT NULL, 
    `view` int(11) NOT NULL DEFAULT '0' 
) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=latin1; 

-- -------------------------------------------------------- 

-- 
-- Table structure for table `user` 
-- 

CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL, 
    `fullname` varchar(100) NOT NULL, 
    `email` varchar(100) NOT NULL, 
    `username` varchar(60) NOT NULL, 
    `password` varchar(60) NOT NULL, 
    `timestamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `profileUrl` varchar(200) NOT NULL DEFAULT 'https://mymonas.com/forum/img/nophoto.png', 
    `profileBg` varchar(200) NOT NULL, 
    `dateCreated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `aboutMe` varchar(500) NOT NULL, 
    `isModerator` tinyint(4) NOT NULL DEFAULT '0' 
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1; 

答えて

0

私の推測では、あなたは、MySQL 5.5を実行している次のとおりです。

は、ここに私のデータベースです。その場合、DATETIMEにCURRENT_TIMESTAMPを使用することはできません。 DATETIMEのデフォルト値はnullであるか、デフォルト値はありません。ただし、TIMESTAMPに変更することはできますが、表ごとにデフォルトとON UPDATEを1つのみ設定できます。ポスト・インサート・トリガーを使用して、新しいレコードのNOW()値を入力することもできます。 Here'sドキュメントを参考にしてください。

0

の代わりにTIMESTAMPを使用してください。 Thisが役に立ちます。

+0

こんにちは、上記の表をデータベースに書き直すことができます。私はプログラミングで新しいです –

+0

excecute ALTER TABLE 'スレッド'変更 'dateCreated'' dateCreated' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; –

関連する問題