How to split large sql insert into multiple inserts - mysql

I have large sql insert query with multiple inserts seperated by commas something like below.
INSERT INTO `table1` VALUES (396,3,90,'collar','admin','2015-05-27 10:10:52','2015-05-27 10:10:52',0),(397,3,90,'across shoulder','admin','2015-05-27 10:10:52','2015-05-27 10:10:52',0);
How can I split this large sql insert into multiple inserts?
Some thing like this:
INSERT INTO `table1` VALUES(396,3,90,'collar','admin','2015-05-27 10:10:52','2015-05-27 10:10:52',0);
INSERT INTO `table1` VALUES (397,3,90,'across shoulder','admin','2015-05-27 10:10:52','2015-05-27 10:10:52',0);

There are two option are avaialble.(This are Only alternatives)
1) Create CSV file of Inputs and import it into table by using Workbench.
or
2) I will suggest you alternative to this use Mysql WorkBench for insert values.

Related

How does dolphindb specify column names like MySQL when inserting data?

I have a table with hundreds of lines, and I just want insert some column data, and how to specify column name, in mysql I can write
insert into joke (gid,name)value(0,”joker”);
It is not possible and also unnecessary
Insert new records to a table.
Syntax:
insert into
table_name1
values (X, [Y], ...) | select col_name(s) from table_name2
Online manual for INSERT INTO

Multiple Insert Queries are not working with TSQLQuery with MySQL [duplicate]

I have 1-many number of records that need to be entered into a table. What is the best way to do this in a query? Should I just make a loop and insert one record per iteration? Or is there a better way?
From the MySQL manual
INSERT statements that use VALUES
syntax can insert multiple rows. To do
this, include multiple lists of column
values, each enclosed within
parentheses and separated by commas.
Example:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
Most of the time, you are not working in a MySQL client and you should batch inserts together using the appropriate API.
E.g. in JDBC:
connection con.setAutoCommit(false);
PreparedStatement prepStmt = con.prepareStatement("UPDATE DEPT SET MGRNO=? WHERE DEPTNO=?");
prepStmt.setString(1,mgrnum1);
prepStmt.setString(2,deptnum1);
prepStmt.addBatch();
prepStmt.setString(1,mgrnum2);
prepStmt.setString(2,deptnum2);
prepStmt.addBatch();
int [] numUpdates=prepStmt.executeBatch();
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/tjvbtupd.htm
Load data infile query is much better option but some servers like godaddy restrict this option on shared hosting so , only two options left then one is insert record on every iteration or batch insert , but batch insert has its limitaion of characters if your query exceeds this number of characters set in mysql then your query will crash , So I suggest insert data in chunks withs batch insert , this will minimize number of connections established with database.best of luck guys
Insert into table(col1,col2) select col1,col2 from table_2;
Please refer to MySQL documentation on INSERT Statement
mysql allows you to insert multiple rows at once INSERT manual
INSERT INTO test_1 VALUES(24, 'B', '1990-12-07'), (25, 'C', '1990-12-08');

Insert specific values into mysql database

I have the following problem:
I would't insert all the values in my db.
So, i would insert only id,tessera,nome,sex. I thought i had to write something like this:
INSERT INTO registries(id,tessera,'',nome,sex) VALUES (35983,35983,'DOG', 'FABIO', 'M')
I don't want to insert the DOG value in my db cause I don't have any attribute in my schema to save it.
I have 3000 rows and I take this row as example so I can't simply delete the DOG value and the attribute field in my sql query.
I remember that I have to use something like this
INSERT INTO registries(id,tessera,'',nome,sex)
I mean, I have to write '' to not consider the value in that position.
but MySQL gives me an error..
Can you help me?
You can handle this situation in following ways.
create temporary table on same server. Insert all data in temporary table then use insert into select statement and select required fields.
create temporary column and insert data in that column and delete temporary column
INSERT INTO registries (id,tessera,new_column,nome,sex)
VALUES (35983, 35983, '', 'FABIO', 'M');
Now
DROP COLUMN new_column from registries;
Try this (assuming dog is a column name):
INSERT INTO registries (id,tessera,dog_name,nome,sex) VALUES (35983, 35983, '', 'FABIO', 'M')
If dog_name is allowed to be NULL (which it is by default) you could also just not insert any value, like this:
INSERT INTO registries (id,tessera,nome,sex) VALUES (35983, 35983, 'FABIO', 'M')

Split SQL insert or XML to 2 different tables

I have a large sql insert like, (this is not large, it was an example)
INSERT INTO `NAMES` (`Name`, `DunkerID`, `Birthday`, `Lastname`) VALUES ('Jacob', 'Jacob18', '1965-01-05', Schulz');
But i want the insert Birthday and Lastname and their values into a different table, how can i do that?
And the XML in the title would be if i could split XML the same way, like
<Name>Jacob</Name>
<DunkerID>Jacob18</DunkerID>
<Birthday>1965-01-5</Birthday>
<Lastname>Schulz</Lastname>
The reason i need to do that is because i already codes like this with wrong tables just waiting to be inserted.

insert statement sql inserting values into a table in mysql with a where clause condition

I have rails application and its using mysql.
I have a piles table with two columns that I care for.
The columns are name_he_il and name_en_us
I don't have a problem doing these
select name_he_il from piles;
select name_en_us from piles;
I need to insert data into the name_he_il column into the piles table where name_en_us = "a specific value"
I tried something like this
insert into piles (name_he_il) values 'לא מאפיין כלל' where name_en_us = "Extremely Uncharacteristic";
I am getting syntax error.
I was googling and I figured the sql should be
insert into table (column 1) values (blah) where conditions;
but its not working.
Basically that hebrew text means extremely uncharacteristic.
You want to use UPDATE ... WHERE
INSERT is for creating new records only.
Do UPDATE and not INSERT:
UPDATE piles SET name_he_il = 'לא מאפיין כלל' WHERE name_en_us = "Extremely Uncharacteristic";
Insert query is to insert new rom into table. If you already have row with value of "name_he_il" column then you need to use update.
UPDATE piles SET name_he_il='new value' WHERE name_he_es = 'something'