postgresSQL: column doesn't exist, when trying to insert into table [duplicate] - sql

This question already has answers here:
What is the difference between single quotes and double quotes in PostgreSQL?
(3 answers)
PostgreSQL - insert statement error, thinks value to insert is a column name
(1 answer)
INSERT COMMAND :: ERROR: column "value" does not exist
(2 answers)
postgres column "X" does not exist
(1 answer)
Closed 1 year ago.
when I run this in terminal:
INSERT INTO signup (username, user_password) VALUES("John", "dqw1");
It gives me: ERROR: column "John" does not exist.
What could be the problem here? this doesn't even make sense, the column name is username. "John" is just a value, it shouldn't exist before.

The issue is with the double quotes - postgres is interpreting them as "delimited identifiers" (i.e. the name of an object, such as a column in a table).
So instead of this:
INSERT INTO signup (username, user_password) VALUES("John", "dqw1");
Do this:
INSERT INTO signup (username, user_password) VALUES('John', 'dqw1');

Related

SQL - Insert only explicit values and not repeated ones [duplicate]

This question already has answers here:
Sql insert multiple rows if not exists
(7 answers)
Closed 10 months ago.
I have a SQL script with about 250 entries that are being inserted. The script on its own runs fine however, I run into problems in case of duplicate entries. I could try doing something like this:
IF NOT EXISTS (SELECT * FROM [TS].[Configs] WHERE [Id] = 15)
INSERT . . .
However, I cannot write this repeated statement over and over for the 250 entries. I have tried setting Identity_Insert to ON but I still get this error:
Exception Message: Violation of PRIMARY KEY constraint 'Tbl_LangFiles'. Cannot insert duplicate key in object '[TS].[Configs]'
How can I go about only inserting unique entries in this table?
Have you tried the UPSERT statement?
UPSERT INTO employees (id, name, email)
VALUES (2, ‘Dennis’, ‘dennisp#weyland.corp’);
This will attempt to insert a new record on the database, but if it already exists, it will take the parameters and update.
L.

PostgreSQL insert or return id [duplicate]

This question already has answers here:
Get or else insert in PostgreSQL
(1 answer)
Function to select existing value or insert new row
(2 answers)
Doing either SELECT or INSERT
(2 answers)
Closed 1 year ago.
I'm trying to insert or return id of existing value in case of uniqueness conflict (the data is already there).
I'm guessing it could be something like this, but can't quite get it to return the actual ID
INSERT INTO my_table (my_column) VALUES ('my value')
ON CONFLICT DO NOTHING
RETURNING ID;
where my_column has a unique constraint.
Any ideas?

I'm getting a 'column not allowed' error [duplicate]

This question already has answers here:
Oracle SQL: Column not allowed
(3 answers)
Closed 4 years ago.
I fired following query (exactly same). But Oracle is responding with an error
column not allowed '
insert into student (rollno,name,address)
values (1,"kartish khanolkar" "kudal")
Table is as follows:
create table student
(
rollno number(10),
name varchar (30),
address varchar (20),
primary key (rollno)
);
There is an error in the query .
insert into student (rollno,name,address) values (1,"kartish khanolkar" "kudal")
Use single quotes for strings.
Also you are missing a comma after 'kartish khanolkar'
The actual query should be like
insert into student (rollno,name,address) values (1,'kartish khanolkar','kudal')

How get id after inserting a new row of data into the table? [duplicate]

This question already has answers here:
PostgreSQL function for last inserted ID
(14 answers)
Closed 4 years ago.
I have:
Insert Into(name)
Value('Anton')
How do I get the newly created id?
Insert a single row into table distributors, returning the sequence
number generated by the DEFAULT clause:
Code
INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
RETURNING did;
The optional RETURNING clause causes INSERT to compute and return
value(s) based on each row actually inserted. This is primarily useful
for obtaining values that were supplied by defaults, such as a serial
sequence number. However, any expression using the table's columns is
allowed. The syntax of the RETURNING list is identical to that of the
output list of SELECT.
Reference:
https://www.postgresql.org/docs/9.1/static/sql-insert.html
https://stackoverflow.com/a/2944481/7793817
You use the RETURNING keyword
https://www.postgresql.org/docs/9.5/static/dml-returning.html
From the doc :
INSERT INTO users (firstname, lastname) VALUES ('Joe', 'Cool') RETURNING id;

SQL Server insert empty instance [duplicate]

This question already has answers here:
How to insert a record with only default values?
(3 answers)
Closed 5 years ago.
SQL Server 2014
Given a table 'test' with the following fields:
id: int. Primary key. Autoincrement by 1.
creation_date: datetime. GETDATE() by default value.
My intention is to insert an empty statement, just to register the event of the insertion. I thought that as the id is an autoincrement and the creation_date has a value by default, a record could be inserted without specifying any value. I know that this can be done by adding a third field and specifying the value in the insertion, but my question is:
Can something like a plain INSERT INTO test be done?
Thanks
INSERT INTO test DEFAULT VALUES