problem changing a TIMESTAMP to DEFAULT 0

This commit is contained in:
Marc Delisle
2006-12-12 13:12:42 +00:00
parent 46ccf8cdca
commit 7117f46357
2 changed files with 15 additions and 4 deletions

View File

@@ -5,6 +5,9 @@ phpMyAdmin - ChangeLog
$Id$ $Id$
$HeadURL$ $HeadURL$
2006-12-12 Marc Delisle <lem9@users.sourceforge.net>
* libraries/Table.class.php: problem changing a TIMESTAMP to DEFAULT 0
2006-12-11 Michal Čihař <michal@cihar.com> 2006-12-11 Michal Čihař <michal@cihar.com>
* lang/czech: Updated. * lang/czech: Updated.

View File

@@ -1,5 +1,6 @@
<?php <?php
/* $Id$ */
// vim: expandtab sw=4 ts=4 sts=4:
class PMA_Table { class PMA_Table {
@@ -269,6 +270,8 @@ class PMA_Table {
&$field_primary, $index, $default_orig = false) &$field_primary, $index, $default_orig = false)
{ {
$is_timestamp = strpos(' ' . strtoupper($type), 'TIMESTAMP') == 1;
// $default_current_timestamp has priority over $default // $default_current_timestamp has priority over $default
/** /**
@@ -299,8 +302,7 @@ class PMA_Table {
} }
} }
if ($default_current_timestamp if ($default_current_timestamp && $is_timestamp) {
&& strpos(' ' . strtoupper($type), 'TIMESTAMP') == 1) {
$query .= ' DEFAULT CURRENT_TIMESTAMP'; $query .= ' DEFAULT CURRENT_TIMESTAMP';
// auto_increment field cannot have a default value // auto_increment field cannot have a default value
} elseif ($extra !== 'AUTO_INCREMENT' } elseif ($extra !== 'AUTO_INCREMENT'
@@ -309,7 +311,13 @@ class PMA_Table {
$query .= ' DEFAULT NULL'; $query .= ' DEFAULT NULL';
} else { } else {
if (strlen($default)) { if (strlen($default)) {
$query .= ' DEFAULT \'' . PMA_sqlAddslashes($default) . '\''; if ($is_timestamp) {
// a TIMESTAMP does not accept DEFAULT '0'
// but DEFAULT 0 works
$query .= ' DEFAULT ' . PMA_sqlAddslashes($default);
} else {
$query .= ' DEFAULT \'' . PMA_sqlAddslashes($default) . '\'';
}
} }
} }
} }