0

I want to insert a row "India", "Aditya Birla Capital Ltd", "INE674K01013", "INR", "ADTB","Aditya Birla Capital" to table shares."shareNames". This is the postgresql code:

INSERT INTO shares."shareNames" ("country", "full_name", "isin_code", "currency", "symbol", "stock_name") 
VALUES ("India", "Aditya Birla Capital Ltd", "INE674K01013", "INR", "ADTB","Aditya Birla Capital")
RETURNING *;

What I expected

I expected that shares."shareNames" would have a row like :

country|full_name               |isin_code   |currency|symbol|stock_name 
India  |Aditya Birla Capital Ltd|INE674K01013|INR     |ADTB  |Aditya Birla Capital

Actual result

Instead:

ERROR:  column "India" does not exist
LINE 3: VALUES ("India", "Aditya Birla Capital Ltd",
                ^
SQL state: 42703
Character: 125

Request: Please help me fix this problem!

Mainak
  • 1
  • 2

2 Answers2

3

In PostgreSQL the double quoting used only for DB entities names like table, column names. For escape strings use single quotes like:

INSERT INTO shares."shareNames" (
    "country", "full_name", "isin_code", "currency", "symbol", "stock_name"
) VALUES (
   'India', 'Aditya Birla Capital Ltd', 'INE674K01013', 'INR', 'ADTB', 'Aditya Birla Capital'
)
RETURNING *;
Slava Rozhnev
  • 9,510
  • 6
  • 23
  • 39
  • ERROR: malformed array literal: "Aditya Birla Capital Ltd" LINE 4: 'India', 'Aditya Birla Capital Ltd', 'INE674K01013', 'INR... ^ DETAIL: Array value must start with "{" or dimension information. SQL state: 22P02 Character: 134 – Mainak Dec 28 '20 at 09:56
  • It is not working, thanks anyway – Mainak Dec 28 '20 at 09:58
1

try like below

INSERT INTO shares."shareNames" ("country", "full_name", "isin_code", "currency", "symbol", "stock_name") 
VALUES ('India', 'Aditya Birla Capital Ltd', 'INE674K01013', 'INR', 'ADTB','Aditya Birla Capital')
RETURNING *;
Anil
  • 47
  • 1
  • 7