簡體   English   中英

Mysql如果不存在則創建表...信息架構

[英]Mysql Create Table If Not Exists else… Information Schema

希望快點 - 不確定我在這里哪里出錯了,但這似乎並沒有完全停止。

通過 PHP 運行 MySQL 查詢...

當前代碼

$uu = mysql_query("
IF EXISTS(SELECT table_name FROM information_schema.tables 
WHERE table_schema = 'schema_example' AND table_name = 'test_q')
THEN
insert into `test_q` (code, va_desc, price, category) 
values ('$code', '$desc', '$price', '$categ') 
on duplicate key update va_desc='$desc', price='$price', category='$categ'
ELSE
CREATE TABLE `test_quote` (
`code` varchar(30) NOT NULL,
`va_desc` text NOT NULL,
`price` text NOT NULL,
`category` text NOT NULL,
PRIMARY KEY (`code`),
UNIQUE KEY `id` (`code`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
insert into `test_q` (code, va_desc, price, category) 
values ('$code', '$desc', '$price', '$categ')
END IF;
")or die(mysql_error());

非常感謝對我需要更改的內容的一些幫助,目前這絕對沒有任何作用,也不會返回任何特定錯誤。 :/

話雖如此,如果我在 phpMyAdmin 中運行它,它會返回以下內容(雖然我不明白為什么):

#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MariaDB server 
version for the right syntax to use near 
'ELSE CREATE TABLE `test_quote`(
`code` varchar(30) NOT NULL,
`va_desc` text NO' at line 7 

您不需要查詢INFORMATION_SCHEMA 您可以使用IF NOT EXISTS選項來CREATE TABLE

mysql_query("CREATE TABLE IF NOT EXISTS `test_q` (
    `code` varchar(30) NOT NULL,
    `va_desc` text NOT NULL,
    `price` text NOT NULL,
    `category` text NOT NULL,
    PRIMARY KEY (`code`),
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1");
mysql_query("insert into `test_q` (code, va_desc, price, category) 
            values ('$code', '$desc', '$price', '$categ') 
            on duplicate key update va_desc='$desc', price='$price', category='$categ'");

此外,主鍵是唯一鍵,創建表時無需同時指定它們。

嘗試使用以下查詢作為 sql 查詢中不支持 if、else 和 then 語句,因為您可以存儲過程。

mysql_query("CREATE TABLE IF NOT EXISTS `test_q` (`code` varchar(30) NOT NULL,
`va_desc` text NOT NULL,
`price` text NOT NULL,
`category` text NOT NULL,
PRIMARY KEY (`code`),
);
mysql_query("insert into `test_q` (code, va_desc, price, category) 
        values ('$code', '$desc', '$price', '$categ') 
        on duplicate key update va_desc='$desc', price='$price', category='$categ'");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM