MySQL 语法 : can't create table

标签 mysql sql mysql-error-1005

mysql> create table balance_sheet(
    -> Cash_and_cash_equivalents  VARCHAR(20),
    -> Trading_financial_assets  VARCHAR(20),
    -> Note_receivable  VARCHAR(20),
    -> Account_receivable  VARCHAR(20),
    -> Advance_money  VARCHAR(20),
    -> Interest_receivable  VARCHAR(20),
    -> Dividend_receivable  VARCHAR(20),
    -> Other_notes_receivable  VARCHAR(20),
    -> Due_from_related_parties  VARCHAR(20),
    -> Inventory  VARCHAR(20),
    -> Consumptive_biological_assets  VARCHAR(20),
    -> Non_current_asset(expire_in_a_year)  VARCHAR(20),
    -> Other_current_assets  VARCHAR(20),
    -> Total_current_assets  VARCHAR(20),
    -> Available_for_sale_financial_assets  VARCHAR(20),
    -> Held_to_maturity_investment  VARCHAR(20),
    -> Long_term_account_receivable  VARCHAR(20),
    -> Long_term_equity_investment  VARCHAR(20),
    -> Investment_real_eastate  VARCHAR(20),
    -> Fixed_assets  VARCHAR(20),
    -> Construction_in_progress  VARCHAR(20),
    -> Project_material  VARCHAR(20),
    -> Liquidation_of_fixed_assets  VARCHAR(20),
    -> Capitalized_biological_assets  VARCHAR(20),
    -> Oil_and_gas_assets  VARCHAR(20),
    -> Intangible_assets  VARCHAR(20),
    -> R&d_expense  VARCHAR(20),
    -> Goodwill  VARCHAR(20),
    -> Deferred_assets  VARCHAR(20),
    -> Deferred_income_tax_assets  VARCHAR(20),
    -> Other_non_current_assets  VARCHAR(20),
    -> Total_non_current_assets  VARCHAR(20),
    -> Total_assets  VARCHAR(20),
    -> Short_term_borrowing  VARCHAR(20),
    -> Transaction_financial_liabilities  VARCHAR(20),
    -> Notes_payable  VARCHAR(20),
    -> Account_payable  VARCHAR(20),
    -> Item_received_in_advance  VARCHAR(20),
    -> Employee_pay_payable  VARCHAR(20),
    -> Tax_payable  VARCHAR(20),
    -> Interest_payable  VARCHAR(20),
    -> Dividend_payable  VARCHAR(20),
    -> Other_account_payable  VARCHAR(20),
    -> Due_to_related_parties  VARCHAR(20),
    -> Non_current_liabilities_due_within_one_year  VARCHAR(20),
    -> Other_current_liabilities  VARCHAR(20),
    -> Total_current_liabilities  VARCHAR(20),
    -> Long_term_loan  VARCHAR(20),
    -> Bonds_payable  VARCHAR(20),
    -> Long_term_payable  VARCHAR(20),
    -> Specific_payable  VARCHAR(20),
    -> Estimated_liabilities  VARCHAR(20),
    -> Deferred_income_tax_liabilities  VARCHAR(20),
    -> Other_non_current_liabilities  VARCHAR(20),
    -> Total_non_current_liabilities  VARCHAR(20),
    -> Total_liabilities  VARCHAR(20),
    -> Paid_in_capital  VARCHAR(20),
    -> Contributed_surplus  VARCHAR(20),
    -> Treasury_stock  VARCHAR(20),
    -> Earned_surplus  VARCHAR(20),
    -> Retained_earnings  VARCHAR(20),
    -> Translation_reserve  VARCHAR(20),
    -> Nonrecurring_items  VARCHAR(20),
    -> Total_equity(non)  VARCHAR(20),
    -> Minority_interests  VARCHAR(20),
    -> Total_equity  VARCHAR(20),
    -> Total_liabilities_&_shareholder's_equity  VARCHAR(20));
    '>
    '> 

当我按下回车时,有'>的输出,没有其他 react ,怎么了?

最佳答案

你的问题在最后一行。列名不能包含&':

-> Total_liabilities_&_shareholder's_equity VARCHAR(20));

将其更改为:

-> Total_liabilities_shareholders_equity VARCHAR(20));

编辑

事实证明,MySQL 确实支持列名中的特殊字符,但您必须对它们进行转义:

-> `Total_liabilities_&_shareholder's_equity` VARCHAR(20));

出于可读性原因,我强烈建议不要这样做。

来自docs :

An identifier may be quoted or unquoted. If an identifier contains special characters or is a reserved word, you must quote it whenever you refer to it. The set of alphanumeric characters from the current character set, “_”, and “$” are not special.

The identifier quote character is the backtick (“`”).

关于MySQL 语法 : can't create table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2702706/

相关文章:

mysql - 'date' 字段的默认值无效

php - MySQL建表错误?也许是版本问题?

mysql - CakePHP 获取带有 future 日期的记录

mySql ORDER BY 首先包含一些元素?

sql - sql server 在插入时是否检查重复的 GUID?

sql - 在 Go 中将 sqlx.DB 转换为 sql.DB

SQL 'stuff' 和 'FOR XML PATH' 生成奇怪的符号

MySql 错误 : #105 (Code 150). 当我创建数据库模式时,我收到错误代码 150。

从 mysql 工作台创建表时出现 MySQL 150 错误(外键选项与列中的非空值冲突,已修复)

php - 如何在循环内的同一表和列中插入last_insert_id