From 655cb86026fda63cf8f880424321c52b03c772e4 Mon Sep 17 00:00:00 2001 From: krupalvora Date: Sun, 26 Mar 2023 16:31:19 +0530 Subject: [PATCH 1/5] scd type 2 init --- customer.sql | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++ md5.py | 6 ++++ readme.md | 15 +++++++++ scd.py | 46 +++++++++++++++++++++++++++ scd_exe.py | 5 +++ 5 files changed, 161 insertions(+) create mode 100644 customer.sql create mode 100644 md5.py create mode 100644 readme.md create mode 100644 scd.py create mode 100644 scd_exe.py diff --git a/customer.sql b/customer.sql new file mode 100644 index 0000000..3a8a175 --- /dev/null +++ b/customer.sql @@ -0,0 +1,89 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.0 +-- https://www.phpmyadmin.net/ +-- +-- Host: 127.0.0.1:3307 +-- Generation Time: Mar 26, 2023 at 10:00 AM +-- Server version: 10.4.27-MariaDB +-- PHP Version: 8.2.0 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `source` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `customer` +-- + +CREATE TABLE `customer` ( + `CUST_CODE` varchar(6) NOT NULL, + `CUST_NAME` varchar(40) NOT NULL, + `CUST_CITY` char(30) DEFAULT NULL, + `WORKING_AREA` varchar(35) NOT NULL, + `CUST_COUNTRY` varchar(20) NOT NULL, + `GRADE` int(12) DEFAULT NULL, + `OPENING_AMT` int(12) NOT NULL, + `RECEIVE_AMT` int(12) NOT NULL, + `PAYMENT_AMT` int(12) NOT NULL, + `OUTSTANDING_AMT` int(12) NOT NULL, + `PHONE_NO` varchar(10) NOT NULL, + `AGENT_CODE` char(6) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Dumping data for table `customer` +-- + +INSERT INTO `customer` (`CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`) VALUES +('C00001', 'Micheal', 'New York', 'New York', 'USA', 2, 3000, 5000, 2000, 6000, 'CCCCCCC', 'A008'), +('C00002', 'Bolt', 'New York', 'New York', 'USA', 3, 5000, 7000, 9000, 3000, 'DDNRDRH', 'A008'), +('C00003', 'Martin', 'Torento', 'Torento', 'Canada', 2, 8000, 7000, 7000, 8000, 'MJYURFD', 'A004'), +('C00004', 'Winston', 'Brisban', 'Brisban', 'Australia', 1, 5000, 8000, 7000, 6000, 'AAAAAAA', 'A005'), +('C00005', 'Sasikant', 'Mumbai', 'Mumbai', 'India', 1, 7000, 11000, 7000, 11000, '147-258963', 'A002'), +('C00006', 'Shilton', 'Torento', 'Torento', 'Canada', 1, 10000, 7000, 6000, 11000, 'DDDDDDD', 'A004'), +('C00007', 'Ramanathan', 'Chennai', 'Chennai', 'India', 1, 7000, 11000, 9000, 9000, 'GHRDWSD', 'A010'), +('C00008', 'Karolina', 'Torento', 'Torento', 'Canada', 1, 7000, 7000, 9000, 5000, 'HJKORED', 'A004'), +('C00009', 'Ramesh', 'Mumbai', 'Mumbai', 'India', 3, 8000, 7000, 3000, 12000, 'Phone No', 'A002'), +('C00010', 'Charles', 'Hampshair', 'Hampshair', 'UK', 3, 6000, 4000, 5000, 5000, 'MMMMMMM', 'A009'), +('C00011', 'Sundariya', 'Chennai', 'Chennai', 'India', 3, 7000, 11000, 7000, 11000, 'PPHGRTS', 'A010'), +('C00012', 'Steven', 'San Jose', 'San Jose', 'USA', 1, 5000, 7000, 9000, 3000, 'KRFYGJK', 'A012'), +('C00013', 'Holmes', 'London', 'London', 'UK', 2, 6000, 5000, 7000, 4000, 'BBBBBBB', 'A003'), +('C00014', 'Rangarappa', 'Bangalore', 'Bangalore', 'India', 2, 8000, 11000, 7000, 12000, 'AAAATGF', 'A001'), +('C00015', 'Stuart', 'London', 'London', 'UK', 1, 6000, 8000, 3000, 11000, 'GFSGERS', 'A003'), +('C00016', 'Venkatpati', 'Bangalore', 'Bangalore', 'India', 2, 8000, 11000, 7000, 12000, 'JRTVFDD', 'A007'), +('C00017', 'Srinivas', 'Bangalore', 'Bangalore', 'India', 2, 8000, 4000, 3000, 9000, 'AAAAAAB', 'A007'), +('C00018', 'Fleming', 'Brisban', 'Brisban', 'Australia', 2, 7000, 7000, 9000, 5000, 'NHBGVFC', 'A005'), +('C00019', 'Yearannaidu', 'Chennai', 'Chennai', 'India', 1, 8000, 7000, 7000, 8000, 'ZZZZBFV', 'A010'), +('C00020', 'Albert', 'New York', 'New York', 'USA', 3, 5000, 7000, 6000, 6000, 'BBBBSBB', 'A008'), +('C00021', 'Jacks', 'Brisban', 'Brisban', 'Australia', 1, 7000, 7000, 7000, 7000, 'WERTGDF', 'A005'), +('C00022', 'Avinash', 'Mumbai', 'Mumbai', 'India', 2, 7000, 11000, 9000, 9000, '113-123456', 'A002'), +('C00023', 'Karl', 'London', 'London', 'UK', 0, 4000, 6000, 7000, 3000, 'AAAABAA', 'A006'), +('C00024', 'Cook', 'London', 'London', 'UK', 2, 4000, 9000, 7000, 6000, 'FSDDSDF', 'A006'), +('C00025', 'Ravindran', 'Bangalore', 'Bangalore', 'India', 2, 5000, 7000, 4000, 8000, 'AVAVAVA', 'A011'); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `customer` +-- +ALTER TABLE `customer` + ADD PRIMARY KEY (`CUST_CODE`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/md5.py b/md5.py new file mode 100644 index 0000000..307271a --- /dev/null +++ b/md5.py @@ -0,0 +1,6 @@ +import hashlib +import mysql.connector + +def hash(value): + result = hashlib.md5(value.encode()) + return result.hexdigest() \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..a113db5 --- /dev/null +++ b/readme.md @@ -0,0 +1,15 @@ +Flow +fetch records form src: + if records missing in target then insert + else if change in hash then close record and insert + else none + +Logic : +s=[1 2 3] +d=[1 2] + +first insert missing records +query in dds for resp key col values present or not + + + diff --git a/scd.py b/scd.py new file mode 100644 index 0000000..bf58f63 --- /dev/null +++ b/scd.py @@ -0,0 +1,46 @@ +import hashlib +import mysql.connector + +# GET VALUES FROM SRC +conn = mysql.connector.connect(host='localhost', database='source',user='sasdds', password='1234', port=3307) +source=conn.cursor(prepared=True) +source.execute("select CUST_CODE from CUSTOMER") +s=source.fetchall() +source.execute("select * from CUSTOMER") +st=source.fetchall() +ss=str(s).replace(",)","").replace("(","").replace("[","").replace("]","").replace(" ","") +#print(type(st)) + +#GET VALUES FORM TARGET +conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) +dds=conn.cursor() +query=" select CUST_CODE from DDS_CUSTOMER_INC where CUST_CODE in (" + ss +")" +dds.execute(query) +d=dds.fetchall() +query=" select * from DDS_CUSTOMER_INC where CUST_CODE in (" + ss +")" +dds.execute(query) +dt=dds.fetchall() +#print(dt) + + +# now check wehter to insert or update record +# s contains all source keys +# d contains all src keys present in targe (d will always be <= s) +# 1. set operations d-s will give insert count +# 2. rest will give check for update cond +print(len(s),len(d)) +ins_keys=set(s)-set(d) +print(len(ins_keys)) +# i records to be insertd + +insert =[] +for i in s: + + + + + + + + + diff --git a/scd_exe.py b/scd_exe.py new file mode 100644 index 0000000..8d4af87 --- /dev/null +++ b/scd_exe.py @@ -0,0 +1,5 @@ +d=[1,2,3,4] +s=[5,4] +diff=set(s) - set(d) +print(diff) + From 5d06787d7b44e9bf177235d4b7f368f034cb153b Mon Sep 17 00:00:00 2001 From: krupalvora Date: Sun, 26 Mar 2023 17:57:53 +0530 Subject: [PATCH 2/5] init load complete --- scd.py | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/scd.py b/scd.py index bf58f63..0caa0d5 100644 --- a/scd.py +++ b/scd.py @@ -8,18 +8,20 @@ s=source.fetchall() source.execute("select * from CUSTOMER") st=source.fetchall() +conn.commit() ss=str(s).replace(",)","").replace("(","").replace("[","").replace("]","").replace(" ","") #print(type(st)) #GET VALUES FORM TARGET conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) dds=conn.cursor() -query=" select CUST_CODE from DDS_CUSTOMER_INC where CUST_CODE in (" + ss +")" +query=" select CUST_CODE from DDS_CUSTOMER where CUST_CODE in (" + ss +")" dds.execute(query) d=dds.fetchall() -query=" select * from DDS_CUSTOMER_INC where CUST_CODE in (" + ss +")" +query=" select * from DDS_CUSTOMER where CUST_CODE in (" + ss +")" dds.execute(query) dt=dds.fetchall() +conn.commit() #print(dt) @@ -28,19 +30,24 @@ # d contains all src keys present in targe (d will always be <= s) # 1. set operations d-s will give insert count # 2. rest will give check for update cond -print(len(s),len(d)) -ins_keys=set(s)-set(d) -print(len(ins_keys)) -# i records to be insertd - -insert =[] -for i in s: - - - - +#print(len(s),len(d)) +ins_keys=list(set(s)-set(d)) +ins_keys=list(zip(*ins_keys))[0] +# i records to be insertd +insert =[] +for i in range(len(st)): + if st[i][0] in ins_keys: + insert.append(st[i] + ('5999-01-12','2023-03-26',)) +print(insert[0],len(insert)) +# Insert statement +conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) +insert_rec=conn.cursor(prepared=True) +query='''INSERT INTO `dds_customer` (`CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`, `VALID_TO_DTTM`, `VALID_FROM_DTTM`) +VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);''' +insert_rec.executemany(query,insert) +conn.commit() From d15a8ab556ec37550970a2a58a0e01ce5b39c274 Mon Sep 17 00:00:00 2001 From: krupalvora Date: Sun, 26 Mar 2023 20:05:27 +0530 Subject: [PATCH 3/5] bug in hash map --- __pycache__/md5.cpython-39.pyc | Bin 0 -> 334 bytes scd.py | 85 ++++++++++++++++++++++---------- scd_exe.py | 87 +++++++++++++++++++++++++++++++-- 3 files changed, 143 insertions(+), 29 deletions(-) create mode 100644 __pycache__/md5.cpython-39.pyc diff --git a/__pycache__/md5.cpython-39.pyc b/__pycache__/md5.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c9272f9eb71b02d7c0fe1168a90e1f0b41fdf937 GIT binary patch literal 334 zcmYjMu};G<5WREKk|Gs0CI(oLvUFoX2qCp|mx?9w5@L%~b>d(pK!5tIk1bas0pu-(>tcM=oaED#g19@?o#{Q_xZK>9eKB~mEAIrMXLi$N5 zU&Z=KT9-0EddXEQ{n$v`D)$8@q0FDl;)Xw1X)NEEw#oTI+Ktl len(d) : + ins_keys=list(set(s)-set(d)) + ins_keys=list(zip(*ins_keys))[0] + # i records to be insertd + insert =[] + for i in range(len(st)): + if st[i][0] in ins_keys: + insert.append(st[i] + ('5999-01-12',str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),)) - -# Insert statement -conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) -insert_rec=conn.cursor(prepared=True) -query='''INSERT INTO `dds_customer` (`CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`, `VALID_TO_DTTM`, `VALID_FROM_DTTM`) -VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);''' -insert_rec.executemany(query,insert) -conn.commit() + # Insert statement + conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) + insert_rec=conn.cursor(prepared=True) + query='''INSERT INTO `dds_customer` (`CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`, `VALID_TO_DTTM`, `VALID_FROM_DTTM`) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);''' + insert_rec.executemany(query,insert) + conn.commit() diff --git a/scd_exe.py b/scd_exe.py index 8d4af87..6d32915 100644 --- a/scd_exe.py +++ b/scd_exe.py @@ -1,5 +1,84 @@ -d=[1,2,3,4] -s=[5,4] -diff=set(s) - set(d) -print(diff) +import hashlib +import mysql.connector +import datetime +from md5 import hash + +# GET VALUES FROM SRC +conn = mysql.connector.connect(host='localhost', database='source',user='sasdds', password='1234', port=3307) +source=conn.cursor(prepared=True) +source.execute("select CUST_CODE from CUSTOMER") +s=source.fetchall() +source.execute("select `CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE` from CUSTOMER") +st=source.fetchall() +conn.commit() +ss=str(s).replace(",)","").replace("(","").replace("[","").replace("]","").replace(" ","") +#print(type(st)) + +#GET VALUES FORM TARGET +conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) +dds=conn.cursor() +query=" select CUST_CODE from DDS_CUSTOMER where CUST_CODE in (" + ss +")" +dds.execute(query) +d=dds.fetchall() +query=" select `CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE` ,CUSTOMER_RK from DDS_CUSTOMER where CUST_CODE in (" + ss +")" +dds.execute(query) +dt=dds.fetchall() +conn.commit() +print(dt[0]) + +print(len(s),len(d)) + +# if difference between src and dds is zero then +if len(s) <= len(d) : + upd_keys=set(s).union(set(d)) + upd_keys=list(zip(*upd_keys))[0] + #print(upd_keys) + update=[] + insert=[] + for i in range(len(d)): # iter for each present key + #print(upd_keys[i]) + for j in range(len(dt)): + if dt[j][0] == upd_keys[i]: + tmp1= dt[j] + for j in range(len(st)): + if st[j][0] == upd_keys[i]: + tmp2= st[j] + h1,h2= hash(str(tmp1[:-1])),hash(str(tmp2)) + print(h1,h2) + if h1==h2: + pass + else : pass + #update.append(dt[i] + (str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),)) + #insert.append(st[i] + ('5999-01-12',str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),)) + update=(str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),) + upd_keys[i] + insert=st[i] + ('5999-01-12',str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),) + conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) + upd_rec=conn.cursor(prepared=True) + query='''UPDATE `dds_customer` SET VALID_TO_DTTM=%s WHERE CUST_CODE=%s;''' + upd_rec.execute(query,update) + conn.commit() + insert_rec=conn.cursor(prepared=True) + query='''INSERT INTO `dds_customer` (`CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT` + # , `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`, `VALID_TO_DTTM`, `VALID_FROM_DTTM`) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);''' + insert_rec.execute(query,insert) + conn.commit() + + +elif len(s) > len(d) : + ins_keys=list(set(s)-set(d)) + ins_keys=list(zip(*ins_keys))[0] + # i records to be insertd + insert =[] + for i in range(len(st)): + if st[i][0] in ins_keys: + insert.append(st[i] + ('5999-01-12',str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),)) + + # Insert statement + conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) + insert_rec=conn.cursor(prepared=True) + query='''INSERT INTO `dds_customer` (`CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`, `VALID_TO_DTTM`, `VALID_FROM_DTTM`) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);''' + insert_rec.executemany(query,insert) + conn.commit() From d449ca8210b628fb780e79eb89f7cf9f4a0cc291 Mon Sep 17 00:00:00 2001 From: krupalvora Date: Sun, 26 Mar 2023 20:13:12 +0530 Subject: [PATCH 4/5] bug fixing in insert statement --- scd.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/scd.py b/scd.py index 7c8a7da..2155811 100644 --- a/scd.py +++ b/scd.py @@ -48,7 +48,7 @@ if h1==h2: pass else : - print(h1,h2,upd_keys[i],dt[i]) + print(h1,h2,upd_keys[i]) #update.append(dt[i] + (str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),)) #insert.append(st[i] + ('5999-01-12',str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),)) update=(str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),) + (upd_keys[i],) @@ -58,15 +58,15 @@ upd_rec.execute(query,update) conn.commit() - insert=st[i] + ('5999-01-12',str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),) + (dt[i][len(dt[i])-1],) + insert=tmp2 + ('5999-01-12',str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),) + (tmp1[len(tmp1)-1],) print(insert) - # conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) - # insert_rec=conn.cursor(prepared=True) - # query='''INSERT INTO `dds_customer` (`CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT` - # , `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`, `VALID_TO_DTTM`, `VALID_FROM_DTTM`, CUSTOMER_RK) - # VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);''' - # insert_rec.execute(query,insert) - # conn.commit() + conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) + insert_rec=conn.cursor(prepared=True) + query='''INSERT INTO `dds_customer` (`CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT` + , `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`, `VALID_TO_DTTM`, `VALID_FROM_DTTM`, CUSTOMER_RK) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);''' + insert_rec.execute(query,insert) + conn.commit() elif len(s) > len(d) : From 4f8d7da46ded43deb5125ef2878565bfe26472e4 Mon Sep 17 00:00:00 2001 From: krupalvora Date: Sun, 26 Mar 2023 20:59:45 +0530 Subject: [PATCH 5/5] code cleaning --- dds.sql | 154 ++++++++++++++++++++++++++++++++++++++++++ readme.md | 37 +++++++--- scd.py | 19 ++---- source.sql | 89 ++++++++++++++++++++++++ scd_exe.py => test.py | 0 5 files changed, 277 insertions(+), 22 deletions(-) create mode 100644 dds.sql create mode 100644 source.sql rename scd_exe.py => test.py (100%) diff --git a/dds.sql b/dds.sql new file mode 100644 index 0000000..51cdf6c --- /dev/null +++ b/dds.sql @@ -0,0 +1,154 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.0 +-- https://www.phpmyadmin.net/ +-- +-- Host: 127.0.0.1:3307 +-- Generation Time: Mar 26, 2023 at 04:48 PM +-- Server version: 10.4.27-MariaDB +-- PHP Version: 8.2.0 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `dds` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `dds_customer` +-- + +CREATE TABLE `dds_customer` ( + `CUSTOMER_RK` int(11) NOT NULL, + `CUST_CODE` varchar(6) NOT NULL, + `VALID_TO_DTTM` datetime NOT NULL, + `CUST_NAME` varchar(40) NOT NULL, + `CUST_CITY` char(30) DEFAULT NULL, + `WORKING_AREA` varchar(35) NOT NULL, + `CUST_COUNTRY` varchar(20) NOT NULL, + `GRADE` int(12) DEFAULT NULL, + `OPENING_AMT` int(12) NOT NULL, + `RECEIVE_AMT` int(12) NOT NULL, + `PAYMENT_AMT` int(12) NOT NULL, + `OUTSTANDING_AMT` int(12) NOT NULL, + `PHONE_NO` varchar(10) NOT NULL, + `AGENT_CODE` char(6) NOT NULL, + `VALID_FROM_DTTM` datetime DEFAULT NULL, + `PROCESSED_DTTM` datetime NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Dumping data for table `dds_customer` +-- + +INSERT INTO `dds_customer` (`CUSTOMER_RK`, `CUST_CODE`, `VALID_TO_DTTM`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`, `VALID_FROM_DTTM`, `PROCESSED_DTTM`) VALUES +(1, 'C00001', '2023-03-26 20:12:31', 'AAAA', 'New York', 'New York', 'USA', 2, 3000, 5000, 2000, 6000, 'CCCCCCC', 'A008', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(1, 'C00001', '5999-01-12 00:00:00', 'krupal', 'New York', 'New York', 'USA', 2, 3000, 5000, 2000, 6000, 'CCCCCCC', 'A008', '2023-03-26 20:12:31', '2023-03-26 20:12:31'), +(2, 'C00002', '5999-01-12 00:00:00', 'Bolt', 'New York', 'New York', 'USA', 3, 5000, 7000, 9000, 3000, 'DDNRDRH', 'A008', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(3, 'C00003', '5999-01-12 00:00:00', 'Martin', 'Torento', 'Torento', 'Canada', 2, 8000, 7000, 7000, 8000, 'MJYURFD', 'A004', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(4, 'C00004', '5999-01-12 00:00:00', 'Winston', 'Brisban', 'Brisban', 'Australia', 1, 5000, 8000, 7000, 6000, 'AAAAAAA', 'A005', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(5, 'C00005', '5999-01-12 00:00:00', 'Sasikant', 'Mumbai', 'Mumbai', 'India', 1, 7000, 11000, 7000, 11000, '147-258963', 'A002', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(6, 'C00006', '5999-01-12 00:00:00', 'Shilton', 'Torento', 'Torento', 'Canada', 1, 10000, 7000, 6000, 11000, 'DDDDDDD', 'A004', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(7, 'C00007', '5999-01-12 00:00:00', 'Ramanathan', 'Chennai', 'Chennai', 'India', 1, 7000, 11000, 9000, 9000, 'GHRDWSD', 'A010', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(8, 'C00008', '5999-01-12 00:00:00', 'Karolina', 'Torento', 'Torento', 'Canada', 1, 7000, 7000, 9000, 5000, 'HJKORED', 'A004', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(9, 'C00009', '5999-01-12 00:00:00', 'Ramesh', 'Mumbai', 'Mumbai', 'India', 3, 8000, 7000, 3000, 12000, 'Phone No', 'A002', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(10, 'C00010', '5999-01-12 00:00:00', 'Charles', 'Hampshair', 'Hampshair', 'UK', 3, 6000, 4000, 5000, 5000, 'MMMMMMM', 'A009', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(11, 'C00011', '5999-01-12 00:00:00', 'Sundariya', 'Chennai', 'Chennai', 'India', 3, 7000, 11000, 7000, 11000, 'PPHGRTS', 'A010', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(12, 'C00012', '5999-01-12 00:00:00', 'Steven', 'San Jose', 'San Jose', 'USA', 1, 5000, 7000, 9000, 3000, 'KRFYGJK', 'A012', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(13, 'C00013', '5999-01-12 00:00:00', 'Holmes', 'London', 'London', 'UK', 2, 6000, 5000, 7000, 4000, 'BBBBBBB', 'A003', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(14, 'C00014', '5999-01-12 00:00:00', 'Rangarappa', 'Bangalore', 'Bangalore', 'India', 2, 8000, 11000, 7000, 12000, 'AAAATGF', 'A001', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(15, 'C00015', '5999-01-12 00:00:00', 'Stuart', 'London', 'London', 'UK', 1, 6000, 8000, 3000, 11000, 'GFSGERS', 'A003', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(16, 'C00016', '5999-01-12 00:00:00', 'Venkatpati', 'Bangalore', 'Bangalore', 'India', 2, 8000, 11000, 7000, 12000, 'JRTVFDD', 'A007', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(17, 'C00017', '5999-01-12 00:00:00', 'Srinivas', 'Bangalore', 'Bangalore', 'India', 2, 8000, 4000, 3000, 9000, 'AAAAAAB', 'A007', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(18, 'C00018', '5999-01-12 00:00:00', 'Fleming', 'Brisban', 'Brisban', 'Australia', 2, 7000, 7000, 9000, 5000, 'NHBGVFC', 'A005', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(19, 'C00019', '5999-01-12 00:00:00', 'Yearannaidu', 'Chennai', 'Chennai', 'India', 1, 8000, 7000, 7000, 8000, 'ZZZZBFV', 'A010', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(20, 'C00020', '5999-01-12 00:00:00', 'Albert', 'New York', 'New York', 'USA', 3, 5000, 7000, 6000, 6000, 'BBBBSBB', 'A008', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(21, 'C00021', '5999-01-12 00:00:00', 'Jacks', 'Brisban', 'Brisban', 'Australia', 1, 7000, 7000, 7000, 7000, 'WERTGDF', 'A005', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(22, 'C00022', '5999-01-12 00:00:00', 'Avinash', 'Mumbai', 'Mumbai', 'India', 2, 7000, 11000, 9000, 9000, '113-123456', 'A002', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(23, 'C00023', '5999-01-12 00:00:00', 'Karl', 'London', 'London', 'UK', 0, 4000, 6000, 7000, 3000, 'AAAABAA', 'A006', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(24, 'C00024', '5999-01-12 00:00:00', 'Cook', 'London', 'London', 'UK', 2, 4000, 9000, 7000, 6000, 'FSDDSDF', 'A006', '2023-03-26 20:12:08', '2023-03-26 20:12:08'), +(25, 'C00025', '5999-01-12 00:00:00', 'Ravindran', 'Bangalore', 'Bangalore', 'India', 2, 5000, 7000, 4000, 8000, 'AVAVAVA', 'A011', '2023-03-26 20:12:08', '2023-03-26 20:12:08'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `dds_customer_inc` +-- + +CREATE TABLE `dds_customer_inc` ( + `CUSTOMER_RK` int(11) NOT NULL, + `CUST_CODE` varchar(6) NOT NULL, + `VALID_TO_DTTM` datetime NOT NULL, + `CUST_NAME` varchar(40) NOT NULL, + `CUST_CITY` char(30) DEFAULT NULL, + `WORKING_AREA` varchar(35) NOT NULL, + `CUST_COUNTRY` varchar(20) NOT NULL, + `GRADE` int(12) DEFAULT NULL, + `OPENING_AMT` int(12) NOT NULL, + `RECEIVE_AMT` int(12) NOT NULL, + `PAYMENT_AMT` int(12) NOT NULL, + `OUTSTANDING_AMT` int(12) NOT NULL, + `PHONE_NO` varchar(10) NOT NULL, + `AGENT_CODE` char(6) NOT NULL, + `VALID_FROM_DTTM` datetime DEFAULT NULL, + `PROCESSED_DTTM` datetime NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Dumping data for table `dds_customer_inc` +-- + +INSERT INTO `dds_customer_inc` (`CUSTOMER_RK`, `CUST_CODE`, `VALID_TO_DTTM`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`, `VALID_FROM_DTTM`, `PROCESSED_DTTM`) VALUES +(1, 'C00013', '5999-01-01 00:00:00', 'Holmes', 'London', 'London', 'UK', 2, 6000, 5000, 7000, 4000, 'BBBBBBB', 'A003', '2023-03-26 00:00:00', '2023-03-26 14:55:56'), +(2, 'C00001', '5999-01-01 00:00:00', 'Micheal', 'New York', 'New York', 'USA', 2, 3000, 5000, 2000, 6000, 'CCCCCCC', 'A008', '2023-03-26 00:00:00', '2023-03-26 14:59:58'), +(3, 'C00020', '5999-01-01 00:00:00', 'Albert', 'New York', 'New York', 'USA', 3, 5000, 7000, 6000, 6000, 'BBBBSBB', 'A008', '2023-03-26 00:00:00', '2023-03-26 14:59:58'), +(4, 'C00025', '5999-01-01 00:00:00', 'Ravindran', 'Bangalore', 'Bangalore', 'India', 2, 5000, 7000, 4000, 8000, 'AVAVAVA', 'A011', '2023-03-26 00:00:00', '2023-03-26 14:59:58'), +(5, 'C00024', '5999-01-01 00:00:00', 'Cook', 'London', 'London', 'UK', 2, 4000, 9000, 7000, 6000, 'FSDDSDF', 'A006', '2023-03-26 00:00:00', '2023-03-26 14:59:58'), +(6, 'C00015', '5999-01-01 00:00:00', 'Stuart', 'London', 'London', 'UK', 1, 6000, 8000, 3000, 11000, 'GFSGERS', 'A003', '2023-03-26 00:00:00', '2023-03-26 14:59:58'), +(7, 'C00002', '5999-01-01 00:00:00', 'Bolt', 'New York', 'New York', 'USA', 3, 5000, 7000, 9000, 3000, 'DDNRDRH', 'A008', '2023-03-26 00:00:00', '2023-03-26 14:59:58'); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `dds_customer` +-- +ALTER TABLE `dds_customer` + ADD PRIMARY KEY (`CUSTOMER_RK`,`VALID_TO_DTTM`); + +-- +-- Indexes for table `dds_customer_inc` +-- +ALTER TABLE `dds_customer_inc` + ADD PRIMARY KEY (`CUSTOMER_RK`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `dds_customer` +-- +ALTER TABLE `dds_customer` + MODIFY `CUSTOMER_RK` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=26; + +-- +-- AUTO_INCREMENT for table `dds_customer_inc` +-- +ALTER TABLE `dds_customer_inc` + MODIFY `CUSTOMER_RK` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/readme.md b/readme.md index a113db5..e231d5a 100644 --- a/readme.md +++ b/readme.md @@ -1,15 +1,32 @@ -Flow -fetch records form src: - if records missing in target then insert - else if change in hash then close record and insert - else none -Logic : -s=[1 2 3] -d=[1 2] +# SCD (Slow Changing Dimension) Type-2 -first insert missing records -query in dds for resp key col values present or not +To maintain history data. +## 🔗 Links +[![portfolio](https://img.shields.io/badge/my_portfolio-000?style=for-the-badge&logo=ko-fi&logoColor=white)](https://krupalvora.github.io/) +[![linkedin](https://img.shields.io/badge/linkedin-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/krupalvora/) + + + +## Working + +- If record doesn't exists based on business keys, then insert record with respective falgs. + +- If record exists then track changes, close old record & open new record. + + + +## Authors + +- [@krupalvora](https://github.com/krupalvora) + + +## Tech Stack + +**Language:** Python, SQL + +**Other:** Hashing Algo (MD5) + diff --git a/scd.py b/scd.py index 2155811..334a4f9 100644 --- a/scd.py +++ b/scd.py @@ -12,31 +12,28 @@ st=source.fetchall() conn.commit() ss=str(s).replace(",)","").replace("(","").replace("[","").replace("]","").replace(" ","") -#print(type(st)) -#GET VALUES FORM TARGET + +#GET VALUES FORM TARGET WITH MATCHING BUSINESS KEYS conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) dds=conn.cursor() -query=" select CUST_CODE from DDS_CUSTOMER where CUST_CODE in (" + ss +")" +query=" select CUST_CODE from DDS_CUSTOMER where CUST_CODE in (" + ss +") AND VALID_TO_DTTM='5999-01-12 00:00:00'" dds.execute(query) d=dds.fetchall() query=" select `CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE` ,CUSTOMER_RK from DDS_CUSTOMER where CUST_CODE in (" + ss +") AND VALID_TO_DTTM='5999-01-12 00:00:00'" dds.execute(query) dt=dds.fetchall() conn.commit() -#print(dt[0]) -print(len(s),len(d)) +#print(len(s) ,len(d) ) # if difference between src and dds is zero then if len(s) <= len(d) : upd_keys=set(s).union(set(d)) upd_keys=list(zip(*upd_keys))[0] - #print(upd_keys) - update=[] - insert=[] for i in range(len(d)): # iter for each present key - #print(upd_keys[i]) + update=[] + insert=[] for j in range(len(dt)): if dt[j][0] == upd_keys[i]: tmp1= dt[j] @@ -67,8 +64,7 @@ VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);''' insert_rec.execute(query,insert) conn.commit() - - +# if values in src are greater than dds then insert missing ones. elif len(s) > len(d) : ins_keys=list(set(s)-set(d)) ins_keys=list(zip(*ins_keys))[0] @@ -77,7 +73,6 @@ for i in range(len(st)): if st[i][0] in ins_keys: insert.append(st[i] + ('5999-01-12',str(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')),)) - # Insert statement conn = mysql.connector.connect(host='localhost', database='dds',user='sasdds', password='1234', port=3307) insert_rec=conn.cursor(prepared=True) diff --git a/source.sql b/source.sql new file mode 100644 index 0000000..286a01c --- /dev/null +++ b/source.sql @@ -0,0 +1,89 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.0 +-- https://www.phpmyadmin.net/ +-- +-- Host: 127.0.0.1:3307 +-- Generation Time: Mar 26, 2023 at 04:48 PM +-- Server version: 10.4.27-MariaDB +-- PHP Version: 8.2.0 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `source` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `customer` +-- + +CREATE TABLE `customer` ( + `CUST_CODE` varchar(6) NOT NULL, + `CUST_NAME` varchar(40) NOT NULL, + `CUST_CITY` char(30) DEFAULT NULL, + `WORKING_AREA` varchar(35) NOT NULL, + `CUST_COUNTRY` varchar(20) NOT NULL, + `GRADE` int(12) DEFAULT NULL, + `OPENING_AMT` int(12) NOT NULL, + `RECEIVE_AMT` int(12) NOT NULL, + `PAYMENT_AMT` int(12) NOT NULL, + `OUTSTANDING_AMT` int(12) NOT NULL, + `PHONE_NO` varchar(10) NOT NULL, + `AGENT_CODE` char(6) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Dumping data for table `customer` +-- + +INSERT INTO `customer` (`CUST_CODE`, `CUST_NAME`, `CUST_CITY`, `WORKING_AREA`, `CUST_COUNTRY`, `GRADE`, `OPENING_AMT`, `RECEIVE_AMT`, `PAYMENT_AMT`, `OUTSTANDING_AMT`, `PHONE_NO`, `AGENT_CODE`) VALUES +('C00001', 'krupal', 'New York', 'New York', 'USA', 2, 3000, 5000, 2000, 6000, 'CCCCCCC', 'A008'), +('C00002', 'Bolt', 'New York', 'New York', 'USA', 3, 5000, 7000, 9000, 3000, 'DDNRDRH', 'A008'), +('C00003', 'Martin', 'Torento', 'Torento', 'Canada', 2, 8000, 7000, 7000, 8000, 'MJYURFD', 'A004'), +('C00004', 'Winston', 'Brisban', 'Brisban', 'Australia', 1, 5000, 8000, 7000, 6000, 'AAAAAAA', 'A005'), +('C00005', 'Sasikant', 'Mumbai', 'Mumbai', 'India', 1, 7000, 11000, 7000, 11000, '147-258963', 'A002'), +('C00006', 'Shilton', 'Torento', 'Torento', 'Canada', 1, 10000, 7000, 6000, 11000, 'DDDDDDD', 'A004'), +('C00007', 'Ramanathan', 'Chennai', 'Chennai', 'India', 1, 7000, 11000, 9000, 9000, 'GHRDWSD', 'A010'), +('C00008', 'Karolina', 'Torento', 'Torento', 'Canada', 1, 7000, 7000, 9000, 5000, 'HJKORED', 'A004'), +('C00009', 'Ramesh', 'Mumbai', 'Mumbai', 'India', 3, 8000, 7000, 3000, 12000, 'Phone No', 'A002'), +('C00010', 'Charles', 'Hampshair', 'Hampshair', 'UK', 3, 6000, 4000, 5000, 5000, 'MMMMMMM', 'A009'), +('C00011', 'Sundariya', 'Chennai', 'Chennai', 'India', 3, 7000, 11000, 7000, 11000, 'PPHGRTS', 'A010'), +('C00012', 'Steven', 'San Jose', 'San Jose', 'USA', 1, 5000, 7000, 9000, 3000, 'KRFYGJK', 'A012'), +('C00013', 'Holmes', 'London', 'London', 'UK', 2, 6000, 5000, 7000, 4000, 'BBBBBBB', 'A003'), +('C00014', 'Rangarappa', 'Bangalore', 'Bangalore', 'India', 2, 8000, 11000, 7000, 12000, 'AAAATGF', 'A001'), +('C00015', 'Stuart', 'London', 'London', 'UK', 1, 6000, 8000, 3000, 11000, 'GFSGERS', 'A003'), +('C00016', 'Venkatpati', 'Bangalore', 'Bangalore', 'India', 2, 8000, 11000, 7000, 12000, 'JRTVFDD', 'A007'), +('C00017', 'Srinivas', 'Bangalore', 'Bangalore', 'India', 2, 8000, 4000, 3000, 9000, 'AAAAAAB', 'A007'), +('C00018', 'Fleming', 'Brisban', 'Brisban', 'Australia', 2, 7000, 7000, 9000, 5000, 'NHBGVFC', 'A005'), +('C00019', 'Yearannaidu', 'Chennai', 'Chennai', 'India', 1, 8000, 7000, 7000, 8000, 'ZZZZBFV', 'A010'), +('C00020', 'Albert', 'New York', 'New York', 'USA', 3, 5000, 7000, 6000, 6000, 'BBBBSBB', 'A008'), +('C00021', 'Jacks', 'Brisban', 'Brisban', 'Australia', 1, 7000, 7000, 7000, 7000, 'WERTGDF', 'A005'), +('C00022', 'Avinash', 'Mumbai', 'Mumbai', 'India', 2, 7000, 11000, 9000, 9000, '113-123456', 'A002'), +('C00023', 'Karl', 'London', 'London', 'UK', 0, 4000, 6000, 7000, 3000, 'AAAABAA', 'A006'), +('C00024', 'Cook', 'London', 'London', 'UK', 2, 4000, 9000, 7000, 6000, 'FSDDSDF', 'A006'), +('C00025', 'Ravindran', 'Bangalore', 'Bangalore', 'India', 2, 5000, 7000, 4000, 8000, 'AVAVAVA', 'A011'); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `customer` +-- +ALTER TABLE `customer` + ADD PRIMARY KEY (`CUST_CODE`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/scd_exe.py b/test.py similarity index 100% rename from scd_exe.py rename to test.py