首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字段列表MariaDB中的未知列

问字段列表MariaDB中的未知列
EN

Database Administration用户
提问于 2022-01-10 14:21:31
回答 1查看 726关注 0票数 0

我正在使用PHPMyAdmin和MariaDB,并得到了标题中提到的这个奇怪的错误。

代码语言:javascript
复制
CALL log_total_outstanding(@message);
MySQL said: Documentation

#1054 - Unknown column 'time' in 'field list'

我在网上读过这个问题,可能是因为使用了"“而不是”“,或者是由于空白,但我没有这些问题。我在任何地方都没有所谓的“时间”专栏。

代码:

代码语言:javascript
复制
USE bank;

DROP TABLE IF EXISTS total_outstanding_log;
CREATE TABLE total_outstanding_log (
    total_outstanding DECIMAL(13,2) NOT NULL,
    log_time DATETIME NOT NULL
);

DELIMITER $
CREATE PROCEDURE IF NOT EXISTS insert_total_outstanding_log(
         IN total DECIMAL(13,2),
         OUT reply VARCHAR(50)) 
BEGIN
    
    INSERT INTO total_outstanding_log (total_outstanding,log_time)
           VALUES(total, CURRENT_DATE); -- Insert into log table
    SET REPLY = 'Total outstanding log inserted successfully '
            || CHAR(CURRENT_DATE); -- Set the out param message

END $
DELIMITER ;

DELIMITER $
CREATE PROCEDURE IF NOT EXISTS log_total_outstanding(OUT message VARCHAR(50)) 
BEGIN
    
    -- DECLARE @total_outstanding DECIMAL(13,2);
                -- Used to store total outstanding amount
    
    SELECT
        SUM(a.opening_balance)
        +
        (SELECT SUM(amount)
        FROM transaction WHERE isIncoming)
        -
        (SELECT SUM(Amount)
        FROM transaction WHERE isOutgoing) AS total_outstanding
        INTO @total_outstanding -- Assign the value to declared variable
    FROM account a;
    
    -- Call inserting log procedure (nested)
    CALL insert_total_outstanding_log(@total_outstanding, message);

END $
DELIMITER ;

CALL log_total_outstanding(@message);
SELECT @message; -- Display total oustanding log message

这个

代码语言:javascript
复制
SELECT
        SUM(a.opening_balance)
        +
        (SELECT SUM(amount)
        FROM transaction WHERE isIncoming)
        -
        (SELECT SUM(Amount)
        FROM transaction WHERE isOutgoing) AS total_outstanding
        INTO @total_outstanding -- Assign the value to declared variable
    FROM account a;

我已经测试过了。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2022-01-11 00:51:04

||不是用于MySQL/MariaDB中的字符串连接。使用CONCAT(..., ...)函数。以下是MySQL所说的话:

代码语言:javascript
复制
mysql> select 'Total outstanding log inserted successfully '             || CHAR(CURRENT_DATE);
+----------------------------------------------------------------------------------+
| 'Total outstanding log inserted successfully '             || CHAR(CURRENT_DATE) |
+----------------------------------------------------------------------------------+
|                                                                                0 |
+----------------------------------------------------------------------------------+
1 row in set, 3 warnings (0.00 sec)

mysql> show warnings
    -> ;
+---------+------+-------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                               |
+---------+------+-------------------------------------------------------------------------------------------------------+
| Warning | 1287 | '|| as a synonym for OR' is deprecated and will be removed in a future release. Please use OR instead |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Total outstanding log inserted successfully '                      |
| Warning | 1292 | Truncated incorrect DOUBLE value: '\x014\x88\xCE'                                                     |
+---------+------+-------------------------------------------------------------------------------------------------------+
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/305888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档