DBeaver export to csv: "No database selected" - mysql

select * from users u
where u.id < 1000
When I right-click to script, and export I get no database selected error.
When I add "use db" command at above,I get a syntax error.
use db
select * from users u
where u.id < 1000
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM..'
How do I export in DBeaver?
I use a MacOS, and db is using MariaDB if that matters.

Based on your comment I understand now this is a usage question about DBeaver. You simply need to make sure to select your database in the menu bar above the script tab as outlined here: https://dbeaver.com/docs/wiki/SQL-Editor/. See below screenshots for example:

Either you have to separate multiple statements by a semicolon (1) or you can pass the database name directly to your statement (2):
(1):
use db;
select columns from users u ...
(2):
select columns from db.users u ....

Related

'Cant get attributes from Select' while setting up Query for export data task in DBeaver

Hey so I'm trying to set up an export data task in DBeaver, because I want to export some data to another database and I want to query the date in beforehand. So I'm trying to use this SELECT statement
SELECT *
FROM resource
WHERE assignedteamid = 2 AND active;
which works fine on its own but when I'm trying to add this query in the Task setup screen and click on continue I get this Error
Can't get attributes from `SELECT * FROM resource WHERE assignedteamid = 2 AND active;`
Reason: SQL Error [1064] [42000]: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 1' at line 4
I already tried to change up the query but I have no clue what I need to do to fix this problem. I appreciate any help.
Thank you!

Multiple SQL query not working with delimiter on DBeaver

I can't execute MySQL statement when using delimiter (default ';'). I mean, when I run query like:
select * from mdw.dim_date dd limit 10;
select * from mdw.dim_order do limit 5;
I've got such error:
SQL Error [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select * from mdw.dim_order do limit 5' at line 2
I don't want to execute this per Alt+X (I am using Dbeaver) as I want to put query into pentaho. I need to execute around 50 deletes, so I don't want to divide it on 50 SQL scripts.
I am using MySQL (version: 5.6.36-82.0).
You need to click on "Execute Script" option on DBeaver
If you click the play button, It will show you that error.
If you is using Dbeaver you can select you script and press ALT+X
wrong and correct way below
there must be no spaces before delimiter keyword (dbeaver bug I think)

Using MySQL in R - getting error trying to return variable as column

I have used the dbConnect and RMySQL packages to successfully connect to my company's database with R. However, I am struggling to run a query in R and am obtaining a frustrating error. The query works in the MySQL Workbench app that I use day to day, hence the frustration that it won't work in R. Here is a snippet of the SQL query:
USE mydb;
SELECT #theDate := '2017-05-03';
SELECT
#theDate AS today,
a.user_id AS user_id,
...
...
These are the first few lines of the query, and also the part of the query causing the error in R. I receive the following error:
my_query = " USE mydb;
SELECT #theDate := '2017-05-03';
SELECT
#theDate AS today,
a.user_id AS user_id,
...
... "
my_db = dbConnect(MySQL(), ...)
requested_query = dbSendQuery(my_db, my_query)
Error in .local(conn, statement, ...) :
could not run statement: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'SELECT
#theDate AS today,
a.user_id AS user_id,' at line 3
Sorry I cannot provide more reproducible code, but that would involve connecting to the company database and I can't share the database info.
Last comment - I believe the line has to do with the SELECT #theDate: := '2017-05-03'; line. This query was written by my coworker, not myself, and I hadn't before seen 2 select statements used like this before in a query. What's happening in the MySQL Workbench app is that #theDate is essentially a variable set to '2017-05-03'. The first column of the table returned by the query is all '2017-05-03'
Like I said, the query works in MySQL Workbench, but not in R. Quite frustrating. Any suggestions are appreciated!
Thanks!
EDIT - Realizing that this is more a question in trying to understand how setting variables works in SQL. Like I said I hadn't seen this before, but the first SELECT query is setting a variable and then the 2nd SELECT query uses that variable. Is this allowed? I wonder why its allowed in MYSQL Workbench but not R... still frustrating
I believe you cannot execute more than 1 sql query in a single dbSendQuery() call and this causes the error message.
Either execute the 2 queries separately or assign value to the session variable within the 2nd select:
SELECT #theDate := '2017-05-03' AS today, ....

Syntacts error in mysql query

Someone gave me this query to delete community from a database on my server using phpMyAdmin, it worked when he use it so I asked him to send it to me, but I get a error
MySQL said:
Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"SELECT * FROM `connections` WHERE 1" :
delete from connections where communit' at line 1
I did a search on the error but could not figure it out.
"SELECT * FROM `connections` WHERE 1" :
delete from connections where community="XYZ"
You should separate your queries with ; and not :
The error you are receiving as you've shown it is because this line is incorrect:
SELECT * FROM `connections` WHERE 1"
First because it's ending in an unnecessary double quotation mark. MySQL does not use double quotes but single quotes, and even still the other single quote is not there to match it.
The single quotes are also a problem for community="XYZ", this should read: community = 'XYZ'
Secondly, you don't have a condition for your where statement, you must be missing something like:
WHERE columnName = 1;
If you were trying to select everything from connections, you can just remove that where clause all together.
EDIT
In addition, MySQL queries are separated by a semi-colon, not a colon, so MySQL will not realize you are trying two different queries.

Syntax for input parameters in a MySQL query

We recently switched a database from MSSQL to MySQL and the queries that uses parameters does'nt work anymore.
Here's an example of a query in MSSQL:
SELECT * FROM users u WHERE u.ID = :id
Normally, the parameter browser would popup and ask me for a value for :id, but in MySQL I get this error :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':id'
I tried using a # or ? instead of : and it does'nt work.
Thanks in advance for the help.
syntax is not the same
set #id:=123;
SELECT * FROM users u WHERE u.ID = #id;
Docs for User defined variables