How to quickly generate SELECT statement with all columns for a table in DataGrip?

26.9k views Asked by At

In Microsoft SQL Server Management Studio (SSMS), you can right-click on a table, then go to Script Table as -> SELECT To, and then choose a destination for the generated script.

Is there anything similar in DataGrip, or can one be custom created in some way?

The reason I find this useful is because I often find that I'm working with a table with a lot of columns, and I want to select all but a few of them. So it's easier to just have it generate the SELECT statement with all the columns explicitly listed out, so that I can just go through and delete the ones I don't want.

Currently, my workaround in DataGrip is to right-click the table, then choose Copy DDL. This generates the CREATE TABLE statement, which lists out all the columns, but it also includes the column definitions. So I have to do a regex replace or run a macro to get rid of the extra info, which is kind of a pain. Does anyone have a better solution?

2

There are 2 answers

0
kassak On BEST ANSWER

In DataGrip, as in other IntelliJ-based IDEs, everything is about source editing. What you want can be achieved this way:

  • Open console
  • Start typing sel, you'll get completion popup (if not, hit Ctrl+Space)
  • Choose sel here, which is live template for SELECT statement
  • SELECT statement will be generated, asking for table name and column list enter image description here
  • Select desired table from completion, as column list provide *
  • Then hit Alt+Enter on asterisk and select Expand column list enter image description here

I suggest you to look through https://www.jetbrains.com/datagrip/features/

1
moscas On

In DataGrip 2018.3 you can use postfix completion. This is the flexible way to get needed queries.

Try typing

SELECT %table_name%.from
SELECT %table_name%.afrom
SELECT %table_name%.join

And this will be expanded to the needed queries. In the case of from completion you'll be able to write columns.

This makes writing SQL more logical: first, you point table, then columns.

See gif: enter image description here