Wpis z mikrobloga

#mysql #programowanie co mu tu nie pasuje?

Executing SQL script in server
ERROR: Error 1067: Invalid default value for 'begin'
SQL Code:
CREATE TABLE IF NOT EXISTS 'PremierDB'.'ArchivedMeetings' (
'id' INT UNSIGNED NOT NULL AUTO_INCREMENT,
'name' TINYTEXT NULL,
'public_name' TINYTEXT NULL,
'html' LONGTEXT NULL,
'note' TEXT NULL,
'login_mode' TINYINT NOT NULL,
'begin' TIMESTAMP NOT NULL DEFAULT '1970-01-01 00:00:01',
'venue_name' TINYTEXT NULL,
'venue_note' TEXT NULL,
'company_name' TINYTEXT NULL,
'company_note' TEXT NULL,
'listOfPeople_name' TINYTEXT NULL,
'listOfPeople_note' TEXT NULL,
'started' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
'ended' TIMESTAMP NOT NULL DEFAULT '2038-01-19 03:14:07',
PRIMARY KEY ('id'))
ENGINE = InnoDB

TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC.
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Dijuna: To o czym napisałeś to zasięg tego typu - jako wartość daj 0. Timestamp to ilość sekund od 1970, więc wartość domyślna powinna być numeryczna.

Edit: Sprawdziłem i jednak się myle. ;) U mnie zadziałało to tak jak Ty masz opisane. Z której wersji mysqla korzystasz?
  • Odpowiedz
@kawazaki: ale to działa nawet w skrypcie gdzie bezpośrednio wpisuję datę do okienka? Myślałem, że wpisuję tam UTC właśnie, ale ten system jest najwidoczniej mądrzejszy niż przewidziałem. To najprawdopodobniej to, sprawdzę jutro! :)
@czolnowski: najnowszej. Myślę, że kawazaki ma rację, ale dlaczego wtedy działa u ciebie? ;>
  • Odpowiedz