SQL: Copy Data From One Table Into Another
INSERT INTO TABLE2 (COL1, COL2, COL3) SELECT COL1, COL4, COL7 FROM TABLE1
12390 users tagging and storing useful source code snippets
Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world
INSERT INTO TABLE2 (COL1, COL2, COL3) SELECT COL1, COL4, COL7 FROM TABLE1
# Filename: db.py save in your Python dir import e32db class db: def __init__(self, dbpath): self.db = e32db.Dbms() self.dbv = e32db.Db_view() self.reset_counters() try: self.db.open(unicode(dbpath)) except: self.db.create(unicode(dbpath)) self.db.open(unicode(dbpath)) def reset_counters(self): self.affected_rows = 0 self.num_rows = 0 self.__internal_counter = 0 def query(self, sql): self.reset_counters() if sql.lower().startswith('select'): self.dbv.prepare(self.db, unicode(sql)) self.dbv.first_line() self.num_rows = self.dbv.count_line() else: self.affected_rows = self.db.execute(unicode(sql)) def next(self): row = {'id': 0} if self.num_rows < 1: self.reset_counters() raise StopIteration elif self.__internal_counter < self.num_rows: self.dbv.get_line() for i in range(self.dbv.col_count()): row[i] = self.dbv.col(i+1) self.dbv.next_line() self.__internal_counter += 1 return row else: self.reset_counters() raise StopIteration def __iter__(self): return self
# Change __exec_path to the path of your python script dir __exec_path = "E:\\Python\\" dbname = "test" import sys sys.path.append(__exec_path) from db import db # This will open E:\\Python\test.db - it will be created first, if not existing mydb = db(__exec_path+dbname+'.db') mydb.query("create table testing (id counter, name varchar)") mydb.query("insert into testing (name) values ('test 1')") mydb.query("insert into testing (name) values ('test 2')")
# Again change __exec_path to the path of your python script dir __exec_path = "E:\\Python\\" dbname = "test" import sys sys.path.append(__exec_path) from db import db # Opens E:\\Python\test.db mydb = db(__exec_path+dbname+'.db') mydb.query("select * from testing") for row in mydb: print "-> ",row[0]," ",row[1]," <-"
select 'table_name'=object_name(i.id) ,i.indid ,'index_name'=i.name ,i.groupid ,'filegroup'=f.name ,'file_name'=d.physical_name ,'dataspace'=s.name from sys.sysindexes i ,sys.filegroups f ,sys.database_files d ,sys.data_spaces s where objectproperty(i.id,'IsUserTable') = 1 and f.data_space_id = i.groupid and f.data_space_id = d.data_space_id and f.data_space_id = s.data_space_id order by f.name,object_name(i.id),groupid go
-- Setup some vars we'll need DECLARE @prng TABLE (seed BIGINT, rnum nchar(10)) DECLARE @seeds TABLE (seed BIGINT) DECLARE @seed BIGINT DECLARE @C1 BIGINT, @C2 BIGINT, @C3 BIGINT SET @seed = 0 SET @C1 = 1664525 SET @C2 = 4294967296 SET @C3 = 1013904223 -- Create a seed table so we can have some data to use WHILE @seed < 10 BEGIN INSERT INTO @seeds (seed) VALUES (@seed) SET @seed = @seed + 1 END -- Create our PRNG (inserts into table for illustrative purposes) -- prng(seed) ::= ((((C1 * seed) % C2) + C3) % C2) / C2 -- Then convert prng(seed) into a string -- of 10 chars, 8 of which are decimal places INSERT INTO @prng SELECT seed, REPLACE( STR( ( CAST((((@C1*seed)%@C2)+@C3)%@C2 AS FLOAT) ) / ( CAST(@C2 AS FLOAT)), 10, 8 ), ' ', '0') AS rnum FROM @seeds -- Let's take a look at what we created SELECT * FROM @prng
def fetch_value sql = ActiveRecord::Base.connection(); sql.execute "SET autocommit=0"; sql.begin_db_transaction id, value = sql.execute("SELECT id, value FROM sometable WHERE used=0 LIMIT 1 FOR UPDATE").fetch_row; sql.update "UPDATE sometable SET used=1 WHERE id=#{id}"; sql.commit_db_transaction value; end
declare @search varchar(50) SET @search = 'searchterm' SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE @search ORDER BY ROUTINE_NAME
CREATE TABLE schema.table AS SELECT * FROM schema.table
//Follow this syntax: EXEC master.dbo.sp_addlinkedserver @server = N'ADSI', @srvproduct=N'Active Directory Services', @provider=N'ADsDSOObject', @datasrc=N'Servername.domain.com' --AKA the full computer name of the AD server //Then execute the openquery like this: select * from openquery ( ADSI,'SELECT name FROM ''LDAP://Servername.domain.com'' WHERE objectCategory = ''Person'' AND objectClass = ''user'' ')
#!/usr/bin/perl -w # Written by Aaron Jenson. # Original source: http://www.visualprose.com/software.php # Updated to work under Perl 5.6.1 by Edward Rudd # Updated 24 march 2007 by Slim Amamou <slim.amamou@alpha-studios.com> # - output SQL with the option '--sql' # - added SQL create table script to the HELP # # NOTE : you need the TimeDate library (http://search.cpan.org/dist/TimeDate/) # use strict; use Getopt::Long qw(:config bundling); use DBI; use Date::Parse; my %options = (); my $i = 0; my $sql = ''; my $valuesSql = ''; my $line = ''; my $dbh = 0; my $sth = 0; my @parts = (); my $part; my $TIMESTAMP = 3; my $REQUEST_LINE = 4; my @cols = ( 'remote_host', ## 0 'remote_logname', ## 1 'remote_user', ## 2 'request_time', ## 3.string 'time_stamp', ## 3.posix 'request_line', ## 5 'request_method', ## 6 'request_uri', ## 7 'request_args', ## 8 'request_protocol', ## 9 'status', ## 10 'bytes_sent', ## 11 'referer', ## 12 'agent' ## 13 ); my $col = ''; GetOptions (\%options, "version" => sub { VERSION_MESSAGE(); exit 0; }, "help|?" => sub { HELP_MESSAGE(); exit 0; }, "host|h=s", "database|d=s", "table|t=s", "username|u=s", "password|p=s", "logfile|f=s", "sql"); $options{host} ||= 'localhost'; $options{database} ||= ''; $options{username} ||= ''; $options{password} ||= ''; $options{logfile} ||= ''; $options{sql} ||= ''; if( ! ($options{database} || $options{sql})) { HELP_MESSAGE(); print "Must supply a database to connect to.\n"; exit 1; } if( ! $options{table} ) { HELP_MESSAGE(); print "Must supply table name.\n"; exit 1; } if( $options{logfile} ) { if( ! -e $options{logfile} ) { print "File '$options{logfile}' doesn't exist.\n"; exit 1; } open(STDIN, "<$options{logfile}") || die "Can't open $options{logfile} for reading."; } if( $options{database} ) { $dbh = Connect(); if (! $dbh) { exit 1; } } $sql = "INSERT INTO $options{table} ("; foreach $col (@cols) { $sql .= "$col," if( $col ); } chop($sql); $sql .= ') VALUES ('; my ($linecount,$insertcount) = (0,0); while($line = <STDIN>) { $linecount++; @parts = SplitLogLine( $line ); next if( $parts[$TIMESTAMP+1] == 0 ); $valuesSql = ''; for( $i = 0; $i < @cols; ++$i ) { $parts[$i] =~ s/\\/\\\\/g; $parts[$i] =~ s/'/\\'/g; $valuesSql .= "'$parts[$i]'," if( $cols[$i] ); } chop($valuesSql); if( $options{database} ) { $sth = $dbh->prepare("$sql$valuesSql)"); if( ! $sth->execute() ) { print "Unable to perform specified query.\n$sql$valuesSql\n" . $sth->errstr() . "\n"; } else { $insertcount++; } $sth->finish(); } if( $options{sql} ) { print "$sql$valuesSql);\n"; } } if( ! $options{sql} ) { print "Parsed $linecount Log lines\n"; print "Inserted $insertcount records\n"; print "to table '$options{table}' in database '$options{database}' on '$options{host}'\n"; } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Connects to a MySQL database and returns the connection. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub Connect { my $dsn = "DBI:mysql:$options{database};hostname=$options{host}"; return DBI->connect( $dsn, $options{username}, $options{password} ); } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Splits up a log line into its parts. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub SplitLogLine { my $line = shift; my $i = 0; my $inQuote = 0; my $char = ''; my $part = ''; my @parts = (); my $count = 0; chomp($line); for( $i = 0; $i < length($line); ++$i ) { $char = substr($line, $i, 1); if( $char eq ' ' && ! $inQuote ) { ## print "Found part $part.\n"; if( $count == $TIMESTAMP ) { push(@parts, "[".$part."]"); $part = str2time($part); } push(@parts, $part); if( $count == $REQUEST_LINE ) { my @request = split(/[ ?]/, $part); push(@parts, $request[0]); push(@parts, $request[1]); if( $request[3] ) { push(@parts, $request[2]); push(@parts, $request[3]); } else { push(@parts, ''); push(@parts, $request[2]); } $count += 5; } else { ++$count; } $part = ''; } elsif( $char eq '"' || $char eq '[' || $char eq ']' ) { $inQuote = !$inQuote; } else { $part .= $char; } } push(@parts,$part) if $part; return @parts; } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Prints the usage/help message for this program. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub HELP_MESSAGE { print<<EOF; Imports an Apache combined log into a MySQL database. Usage: mysql_import_combined_log.pl -d <database name> -t <table name> [-h <hostname>] [-u <username>] [-p <password>] [-f <filename] --host|-h <host name> The host to connect to. Default is localhost. --database|-d <database name> The database to use. Required. --username|-u <username> The user to connect as. --password|-p <password> The user's password. --table|-t <table name> The name of the table in which to insert data. --logfile|-f <file name> The file to read from. If not given, data is read from stdin. --sql Output SQL --help|-? Print out this help message. --version Print out the version of this software. ---------------------------------- -- SQL create statements for the table -- create table <TABLE_NAME> ( remote_host varchar(50) , remote_logname varchar(50) , remote_user varchar(50) , request_time char(28), time_stamp varchar(10) , request_line varchar(255), request_method varchar(10) , request_uri varchar(255), request_args varchar(255), request_protocol varchar(10) , status varchar(10) , bytes_sent varchar(10) , referer varchar(255) , agent varchar(255) ); EOF } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Prints the version information for this program # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub VERSION_MESSAGE { print "mysql_import_combined_log.pl version 1.2\n"; print "Version 1.0 Written by Aaron Jenson.\n"; print "Update to work with perl 5.6.1 by Edward Rudd\n"; } 1;