为了使用MySQL动态使用游标,是否可以在存储过程的循环中声明游标?我试过并得到一个错误:
increment: LOOP
DECLARE cur1 CURSOR FOR SELECT person_id, publication_id FROM p_publication WHERE person_id = new_count;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur1;
REPEAT
FETCH cur1 INTO pub_id, per_id;
IF NOT done THEN
INSERT INTO test.t2 VALUES (pub_id, per_id);
END IF;
SET new_count = new_count + 1;
UNTIL done END REPEAT;
CLOSE cur1;
IF !(new_count < old_count ) THEN LEAVE increment;
END IF;
END LOOP increment;
Run Code Online (Sandbox Code Playgroud)
您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在第12行'DECLARE cur1 CURSOR FOR SELECT person_id,publication_id FROM person_has_public'附近使用正确的语法 …
尝试从存储过程中调用存储的函数时,我收到1064错误.它只发生在我尝试这样做的行上:SET account_id = get_account_id(user);.有什么问题,我该如何解决?
帐户ID存储功能:
CREATE DEFINER=`aaron`@`%` FUNCTION `get_account_id`(user VARCHAR(255)) RETURNS int(11)
BEGIN
DECLARE xaccount_id INT DEFAULT 0;
#Get Account ID and place into variable used when calling stored procedure that builds the tree structure for the leaf node portfolio id
SELECT account_id
FROM rst_sessions.session_data
WHERE username = user
ORDER BY update_date DESC LIMIT 1
INTO xaccount_id;
RETURN xaccount_id;
END
Run Code Online (Sandbox Code Playgroud)
尝试调用存储函数的存储过程:
CREATE DEFINER=`aaron`@`%` PROCEDURE `build_report_portfolio_list`(user VARCHAR(255))
READS SQL DATA
BEGIN
DECLARE portf_id INT;
DECLARE portf_name VARCHAR(255);
DECLARE str_portf_parent_list …Run Code Online (Sandbox Code Playgroud) mysql sql stored-procedures stored-functions mysql-error-1064
我收到一个超级n00b错误,需要语法帮助.
我有一个描述如下的表格:
mysql> describe easy_table;
+---------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| version | bigint(20) | NO | | NULL | |
| account_id | bigint(20) | NO | MUL | NULL | |
| city | varchar(30) | NO | | NULL | |
...
| name | varchar(255) | YES | | NULL | |
| …Run Code Online (Sandbox Code Playgroud) 我在MySQL工作台中使用SQL编辑器创建了一个Spatial表.要填写此表,以下是我正在使用的代码.
CREATE PROCEDURE fill_points(
IN size INT(10)
)
BEGIN
DECLARE i DOUBLE(10,1) DEFAULT size;
DECLARE lon FLOAT(7,4);
DECLARE lat FLOAT(6,4);
DECLARE position VARCHAR(100);
-- Deleting all.
DELETE FROM Points;
WHILE i > 0 DO
SET lon = RAND() * 360 - 180;
SET lat = RAND() * 180 - 90;
SET position = CONCAT( 'POINT(', lon, ' ', lat, ')' );
INSERT INTO Points(name, location) VALUES ( CONCAT('name_', i), GeomFromText(position) );
SET i = i - 1;
END WHILE;
END …Run Code Online (Sandbox Code Playgroud) 我有一个csv文件,一个大文件,30 000行.我试图使用LOAD文件等从终端导入它,就像我在谷歌上找到的那样,但它没有用.它正在进行导入,但我的表有30 000行NULL单元格.
之后我尝试了phpMyAdmin,在那里我发现我的csv太大了.我使用CSV Splitter将它拆分为5.我已经为第一个文件导入了.一切都很好.比我试图导入第二个,但我得到了错误:
致命错误:在370行的C:\ xampp\phpMyAdmin\libraries\import\csv.php中,允许的内存大小为134217728个字节(尝试分配35个字节)
或有时1064错误.
你知道为什么以及如何解决它?谢谢.
我需要使用表"dict"查找并替换表"短语"中的multiplie字符串
我的代码如下:
update phrases, dict
set phrases.name = replace(phrases.name, dict.source, dict.translate)
where phrases.name <> replace(phrases.name, dict.source, dict.translate)
Run Code Online (Sandbox Code Playgroud)
pharses表示例:
id | name | .. | ..
1 | macbook wht comput | ..
2 | lenova blck god nb | ..
Run Code Online (Sandbox Code Playgroud)
dict表示例:
id | source | translate
1 | wht | white
2 | god | good
3 | lenova | lenovo
4 | blck | black
5 | comput | computer
6 | nb | notebook
Run Code Online (Sandbox Code Playgroud)
我需要这样的phares:
id | name …Run Code Online (Sandbox Code Playgroud) 我正在使用Ubuntu18.04 和MySQL Server- 8.0.18
今天突然mysql无法启动了
随着sudo service mysql status命令出现:
sudo service mysql status
? mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2019-11-02 17:05:23 -05; 1min 44s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1659 ExecStart=/usr/sbin/mysqld (code=exited, status=2)
Process: 1620 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 1659 (code=exited, status=2)
Status: "Server startup in progress"
Nov 02 17:05:22 asus2016-vb01 systemd[1]: mysql.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Nov …Run Code Online (Sandbox Code Playgroud) 我有记录到.CSV文件中,我想将它们导入MySQL数据库.
每当我导入时,.CSV我都会收到消息,Import has been successfully finished...但只有79条记录中的79条被插入到数据库中.
当我尝试导入.CSV包含411条记录的文件时,只插入282条记录.获得411条记录的CSV文件包括两类记录Active and Sold,其中114条记录为活动记录.
有人得到这种类型的问题?如果是这样,该怎么办?
导入mysql数据库给我这个错误:
$ `mysql -u user -p password zxc_db < zxc.sql`
ERROR 1153 (08S01) at line 96: Got a packet bigger than 'max_allowed_packet' bytes
Run Code Online (Sandbox Code Playgroud)
请给我一个解决它的最佳解决方案?坦克斯.
First of all I've examined a lot of questions and googled it a lot, none of them solved my problem..
I'm creating my tables by using Mysql Workbench 6.3. I've created them by using only gui not a single query. After that I've tried to create some foreign keys for int(11) columns but GUI is not allowing me to do so.
Here's my Show Create Table 'tableName'
CREATE TABLE `item` (
`id` int(11) NOT NULL,
`description` varchar(300) NOT NULL,
`maker` …Run Code Online (Sandbox Code Playgroud)