【问题标题】:MySQL Error 1054: Unknown Column 'curent_timestamp' in field listMySQL 错误 1054:字段列表中的未知列 'curent_timestamp'
【发布时间】:2015-08-12 03:29:33
【问题描述】:

我已阅读以下问题:

和一些谷歌建议的链接。没有线索。

这是我的情况。 我在 MariaDB 10.0 中有一个表 inkubator_pinjam,定义为

CREATE TABLE `inkubator_pinjam` (
    `id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
    `kode_pinjam` VARCHAR(20) NOT NULL DEFAULT '',
    `id_inkubator` BIGINT(20) NOT NULL DEFAULT '0',
    `tgl_pinjam` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `nama_bayi` VARCHAR(75) NOT NULL DEFAULT '',
    `kembar` ENUM('Y','N') NOT NULL DEFAULT 'N',
    `tgl_lahir` DATE NULL DEFAULT NULL,
    `berat_lahir` DECIMAL(10,2) NOT NULL DEFAULT '0.00',
    `panjang_lahir` DECIMAL(10,2) NOT NULL DEFAULT '0.00',
    `kondisi` ENUM('SEHAT','SAKIT') NOT NULL DEFAULT 'SEHAT',
    `rumah_sakit` VARCHAR(50) NOT NULL DEFAULT '',
    `nama_dokter` VARCHAR(75) NOT NULL DEFAULT '',
    `tgl_pulang` DATE NULL DEFAULT NULL,
    `no_kk` VARCHAR(50) NOT NULL DEFAULT '',
    `alamat` TEXT NULL,
    `nama_ibu` VARCHAR(50) NOT NULL DEFAULT '',
    `hp_ibu` VARCHAR(20) NOT NULL DEFAULT '',
    `email_ibu` VARCHAR(50) NOT NULL DEFAULT '',
    `nama_ayah` VARCHAR(50) NOT NULL DEFAULT '',
    `hp_ayah` VARCHAR(20) NOT NULL DEFAULT '',
    `email_ayah` VARCHAR(50) NOT NULL DEFAULT '',
    `jumlah_pinjam` INT(2) NOT NULL DEFAULT '1',
    `status_pinjam` ENUM('Ditunda','Disetujui','Ditolak') NOT NULL DEFAULT 'Ditunda',
    `tgl_update_status_pinjam` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `keterangan_status_pinjam` VARCHAR(200) NOT NULL DEFAULT '',
    `konfirmasi` ENUM('Y','N') NOT NULL DEFAULT 'N',
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM
AUTO_INCREMENT=2
;

在 AFTER DELETE 事件上触发此操作

CREATE DEFINER=`inkubator`@`localhost` TRIGGER `inkubator_pinjam_after_delete` AFTER DELETE ON `inkubator_pinjam` FOR EACH ROW BEGIN
    delete from inkubator_monitoring  where kode_pinjam = OLD.kode_pinjam;
    delete from inkubator_kembali  where kode_pinjam = OLD.kode_pinjam;
END

在 PHP 中,我的 PHP 脚本会生成一个插入 SQL 来将数据添加到表中:

insert into inkubator_pinjam ( 
        id, kode_pinjam, id_inkubator, tgl_pinjam, 
         nama_bayi, kembar, tgl_lahir, berat_lahir, 
         panjang_lahir, kondisi, rumah_sakit, 
         nama_dokter, tgl_pulang, no_kk, alamat, 
         nama_ibu, hp_ibu, email_ibu, nama_ayah, 
         hp_ayah, email_ayah, jumlah_pinjam, 
         keterangan_status_pinjam, konfirmasi 
) values ( 
        24145550156759089, '323431-343535-39', 0, CURRENT_TIMESTAMP(), 
        'DIAN KHAMSAWARNI', 'N', '2015-09-21', 3.2, 
        28, 'SEHAT', 'RSU Wahidin',
        'Dr. Marhamah, Sp.OG', '2015-09-23', '9288299288', 'BTN Hamzy E8/A', 
        'RINA MAWARNI', '+62837739938845', '', 'ARIFIN ADINEGORO', '+62837739938845', '', 1, 
        'Ditunda untuk review.', 'Y' 
);

这里的问题是 MariaDB 一直显示错误 SQL 错误 (1054):字段列表中的未知列 curent_timestamp 这对我来说似乎很奇怪。但是数据插入有效,但是数据存在于表中。这对我来说是个大问题,因为数据插入有效,但 MySQL 向 PHP 报告发生了错误,我的 PHP 脚本将失败......

上面的截图来自运行插入 SQL 脚本的 HeidiSQL,所以问题不是来自 PHP。

问题是,我如何消除这个错误?

我已经仔细检查了错误输入的current_timestamp(双'r')作为curent_timestamp(单'r'),检查并重新检查了反引号、未闭合的单引号和双引号、触发器和列默认值。还是没有头绪。

Google 没有任何提示,因此这里的任何想法都将受到高度赞赏。谢谢。

【问题讨论】:

    标签: php mysql mariadb mysql-error-1054


    【解决方案1】:

    倒数第三行

    添加以下两行作为测试,删除备注字符:

    insert into inkubator_pinjam ( 
            id, kode_pinjam, id_inkubator, tgl_pinjam, 
             nama_bayi, kembar, tgl_lahir, berat_lahir, 
             panjang_lahir, kondisi, rumah_sakit, 
             nama_dokter, tgl_pulang, no_kk, alamat, 
             nama_ibu, hp_ibu, email_ibu, nama_ayah, 
             hp_ayah, email_ayah, jumlah_pinjam,
             tgl_update_status_pinjam,      -- <------ ADD THIS HERE ***********
             keterangan_status_pinjam, konfirmasi 
    ) values ( 
            24145550156759089, '323431-343535-39', 0, CURRENT_TIMESTAMP(), 
            'DIAN KHAMSAWARNI', 'N', '2015-09-21', 3.2, 
            28, 'SEHAT', 'RSU Wahidin',
            'Dr. Marhamah, Sp.OG', '2015-09-23', '9288299288', 'BTN Hamzy E8/A', 
            'RINA MAWARNI', '+62837739938845', '', 'ARIFIN ADINEGORO', '+62837739938845', '', 1, 
            CURRENT_TIMESTAMP(), -- <------ ADD THIS HERE ***********
            'Ditunda untuk review.', 'Y' 
    );
    

    【讨论】:

    • 我不知道这是如何工作的,但问题解决了。谢谢! /* Affected rows: 1 Found rows: 0 Warnings: 0 Duration for 1 query: 0,000 sec. */
    • 我很抱歉没有更好地描述它:> 基本上,你有两个 CURRENT_TIMESTAMP。您正在通过第一个,而不是第二个。
    猜你喜欢
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多