<prompt> Anzisha programu ya Go inayounganishwa na hifadhidata ya MySQL na kufanya shughuli za CRUD kwenye jedwali la vitabu lenye safu wima za mada, mwandishi, tarehe ya kuchapishwa na ISBN. Programu inapaswa kutumia taarifa zilizotayarishwa na kushughulikia makosa ipasavyo wakati wa utendakazi wa hifadhidata.PLINFORMAT  <response>: kifurushi kikuukuagiza databasesqlfmtlogiwakati_ github.comgo-sql-drivermysqlchapa muundo wa kitabu ID inMfuatano wa kichwaMfuatano wa mwandishiMuda wa Tarehe ya KuchapishwaMfuatano wa ISBNfunc main db, err : sql.Openmysql, username:passwordtcplocalhost:3306dbnameikiwa makosa ! nil log.Fatalhitilafuahirisha db.Fungamakosa createTabledbikiwa makosa ! nil log.Fatalhitilafukitabu : KitabuKichwa: Mshikaji katika Rye,Mwandishi: J.D. Salinger,Tarehe ya Kuchapishwa: saa.Tarehe1951, 7, 16, 0, 0, 0, 0, saa.UTC,ISBN: 9780316769488,id, kosa : insertBookdb, kitabuikiwa makosa ! nil log.Fatalhitilafufmt.PrintfKitabu kilichoingizwa chenye kitambulisho dn, kitambulishokitabu.ID idkitabu.Kichwa Kichwa Kilichosasishwamakosa sasishoKitabu db, kitabuikiwa makosa ! nil log.Fatalhitilafufmt.PrintlnKitabu KilisasishwafoundBook, err : getBookByIDdb, idikiwa makosa ! nil log.Fatalhitilafufmt.PrintfKitabu kimepatikana: vn, kimepataKitabumakosa deleteBookdb, idikiwa makosa ! nil log.Fatalhitilafufmt.PrintlnKitabu Kilichofutwafunc createTabledb sql.DB kosa swala : UNDA JEDWALI KAMA HAIPO vitabu kitambulisho INT AUTO_INCREMENT,kichwa VARCHAR255 SI UFUPI,mwandishi VARCHAR255 NOT NULL,Tarehe_ya_chapisho TAREHE SI BATILI,isbn VARCHAR13 KIPEKEE SI UFUPI,UFUNGUO WA MSINGI id_, kosa : db.Exechojakurudi makosafunc insertBookdb sql.DB, Kitabu Kitabu int, error query : INGIZA KATIKA vitabujina, mwandishi, tarehe_ya_kuchapishwa, isbn THAMANI ?, ?, ?, ?tokeo, kosa : db.Execswali, kitabu.Kichwa, kitabu.Mwandishi, kitabu.Tarehe ya Uchapishaji, kitabu.ISBNikiwa makosa ! nil kurudi 0, makosaid, makosa :matokeo.LastInsertIdreturn intid, makosafunc updateBookdb sql.DB, Kitabu Kitabu hitilafu query : UPDATE vitabu SET title?, author?, publication_date?, isbn? WHERE id?_, kosa : db.Execswali, kitabu.Kichwa, kitabu.Mwandishi, kitabu.Tarehe ya Uchapishaji, kitabu.ISBN, kitabu.IDkurudi makosafunc getBookByIDdb sql.DB, id int Kitabu, hitilafu query : CHAGUA kitambulisho, kichwa, mwandishi, tarehe_ya_kuchapishwa, isbn FROM vitabu WHERE id?safu : db.QueryRowhoja, kitambulishovar kitabu Kitabukosa : safu.Scankitabu.Kitambulisho, kitabu.Kichwa, kitabu.Mwandishi, kitabu.Tarehe ya uchapishaji, kitabu.ISBNikiwa kosa sql.ErrNoRows return nil, fmt.Errorfkitabu hakijapatikana vinginevyo ikiwa makosa ! nil kurudi nil, makosarudisha kitabu, nilfunc deleteBookdb sql.DB, id int kosa query : FUTA KUTOKA kwenye vitabu WHERE id?_, kosa : db.Exechoja, kitambulishokurudi makosa 