Regarding Locks

locked objects are not displayed in lock entries (ie)SM12?
I did all the locking procedure correct but these locks are not
diplayed in SM12 (i.e)Lock entries??

hey manjula,
refer these links for ur clarifications.
http://help.sap.com/saphelp_47x200/helpdata/en/37/a2e3ae344411d3acb00000e83539c3/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/cb/168237d30d974be10000009b38f8cf/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/c2/2d7037ecc92a7ee10000009b38f8cf/frameset.htm
regards,
bhupesh

Similar Messages

  • Regarding locks in SAP ( concurrent access by two reports for a same table)

    Hi All,
    I have a problem regarding locks. I have designed a report using lock function modules to set locks and release them after the database operations and it works perfectly. There is another report which also does some DB operation on the same table but there are no table locks using enqueue function module implemented in this report and despite of lock set by first report on the table it is able to do the changes on the db table. I need to know how to overcome this problem.
    Thanks for your solutions.
    Regards,
    Sachin

    Sachin Dangayach wrote:
    Hi All,
    >
    > I have a problem regarding locks. I have designed a report using lock function modules to set locks and release them after the database operations and it works perfectly. There is another report which also does some DB operation on the same table but there are no table locks using enqueue function module implemented in this report and despite of lock set by first report on the table it is able to do the changes on the db table. I need to know how to overcome this problem.
    > Thanks for your solutions.
    >
    > Regards,
    > Sachin
    lock procedure requires that all programs involved cooperate. Inconsistencies can occur if a program reads or changes data without having previously locked it. When a lock is set, the data records are only protected against changes by another program if this program also requests a lock before accessing the data.
    Please check the above extract from [SAP help|http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eed9446011d189700000e8322d00/frameset.htm],  to maintain data consistency, it must be ensured that all the programs should lock the data before changing.
    -Rajesh.

  • Doubt regarding Lock

    Hi,
    I was going thru a doc about locks and I came with a clause...
    ".....was trying to change the lock mode from 3 to 5........"
    what is lock mode 3 and 5??
    Regds,
    S

    You should check this link --
    http://orafaq.com/node/854
    Hope this will solve your problem.
    Regards.
    Satyaki De.

  • Regarding Lock objects concept

    Hi,
       I am interested in knowing what is the significance of Lock objects in SAP.
       Can we co-relate SAP lock objects with Oracle.
        Frnds, I dont need any material i hav enough but i want to know the cocept behind this.
    Thanking u all.
    regards,
    suraj

    Hi,
    When you create a lock object System automatically creat two function module.
    1. ENQUEUE_<Lockobject name>. to insert the object in a queue.
    2. DEQUEUE_<Lockobject name>. To remove the object is being queued through above FM.
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
    GO TO SE11
    Select the radio button "Lock object"..
    Give the name starts with EZ or EY..
    Example: EYTEST
    Press Create button..
    Give the short description..
    Example: Lock object for table ZTABLE..
    In the tables tab..Give the table name..
    Example: ZTABLE
    Save and generate..
    Your lock object is now created..You can see the LOCK MODULES..
    In the menu ..GOTO -> LOCK MODULES..There you can see the ENQUEUE and DEQUEUE function
    Lock objects:
    http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm
    http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
    Match Code Objects:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/41/f6b237fec48c67e10000009b38f8cf/content.htm
    http://searchsap.techtarget.com/tip/0,289483,sid21_gci553386,00.html
    See this link:
    http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm
    Check these links -
    lock objects
    Lock Objects
    Lock Objects
    Regards,
    Priyanka.

  • Regarding lock at SAP system

    hay,
    our client says, suddenly today SAP 40B Prod system does not allowusers to login to system. so we had restarted the server. but we would like to know the possible reason for this occurence.
    could somebody guide me what are all things i have to check and what could be reason to get lock.
    I checked Systemlog but could not able tojudge particular reason for it..is there any procedure to findout.
    helps could be appreciated.
    ambichan.

    Hola Ambi,
    there could be a lot of reason,
    first one, you have dialog process, if all dialog process are busy ... you will not be abble to login to SAP. (I thing this case was not in the syslog).
    seconde, maybe the table USR02 had some trouble, did you check the database table USR* ?
    Regards
    Frédéric

  • Regarding Lock Object

    Hi Experts,
    Can you please guide me how i can find out the lock object name. If i know the table name. is there any table which stores the table name and lock object name for that table.
    Or any function module to which i can pass table name in return i can get lock object name.
    i have to do all this by coding.
    Its very urgect.
    Thanks in advance.
    AZAD:)

    Hi
    Lock Objects Tables is: <b>DD25L</b>
    Lock objects are use in SAP to avoid the inconsistancy at the time of data is being insert/change into database.
    SAP Provide three type of Lock objects.
    - Read Lock(Shared Locked)
    protects read access to an object. The read lock allows other transactions read access but not write access to
    the locked area of the table
    - Write Lock(exclusive lock)
    protects write access to an object. The write lock allows other transactions neither read nor write access to
    the locked area of the table.
    - Enhanced write lock (exclusive lock without cumulating)
    works like a write lock except that the enhanced write lock also protects from further accesses from the
    same transaction.
    You can create a lock on a object of SAP thorugh transaction SE11 and enter any meaningful name start with EZ Example EZTEST_LOCK.
    Use: you can see in almost all transaction when you are open an object in Change mode SAP could not allow to any other user to open the same object in change mode.
    Example: in HR when we are enter a personal number in master data maintainance screen SAP can't allow to any other user to use same personal number for changes.
    Technicaly:
    When you create a lock object System automatically creat two function module.
    1. ENQUEUE_<Lockobject name>. to insert the object in a queue.
    2. DEQUEUE_<Lockobject name>. To remove the object is being queued through above FM.
    You have to use these function module in your program.
    check this link for example.
    http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
    tables:vbak.
    call function 'ENQUEUE_EZLOCK3'
    exporting
    mode_vbak = 'E'
    mandt = sy-mandt
    vbeln = vbak-vbeln
    X_VBELN = ' '
    _SCOPE = '2'
    _WAIT = ' '
    _COLLECT = ' '
    EXCEPTIONS
    FOREIGN_LOCK = 1
    SYSTEM_FAILURE = 2
    OTHERS = 3
    if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    Reward points if useful
    Regards
    Anji
    Message was edited by:
            Anji Reddy Vangala

  • Questions regarding Lock Objects.

    I am creating a custom table and I want to implement a unique ID for my table and I want to use the technique of auto-increment. I created a seperate table where to store the increments to be used as IDs. So basically, when a new data is going to be saved on my other table, the program will query the next "id" from the table for increments. I have to make sure that the updating and reading of the data from the table is accessed one at a time to rule out the possibility that there will be no duplicate IDs generated.
    I have read about shared locks and exclusive locks which would serve as a solution for my purpose. The question is: is it possible for other users to "read" from a table if it is currently in an "exclusive lock" by another user?

    >
    it2051229 wrote:
    > I am creating a custom table and I want to implement a unique ID for my table and I want to use the technique of auto-increment. I created a seperate table where to store the increments to be used as IDs. So basically, when a new data is going to be saved on my other table, the program will query the next "id" from the table for increments. I have to make sure that the updating and reading of the data from the table is accessed one at a time to rule out the possibility that there will be no duplicate IDs generated.
    >
    > I have read about shared locks and exclusive locks which would serve as a solution for my purpose. The question is: is it possible for other users to "read" from a table if it is currently in an "exclusive lock" by another user?
    No it isn't.
    When you've selected your current value with SELECT FOR UPDATE (to get the exclusive lock) then every other reader will have to wait.
    But is this really what you want?
    Putting locks on something like an increasing number that is just used for an internal ID?
    This will do nothing but turn your multiuser database application into a one-by-one slowness.
    Instead, check the documentation about SEQUENCES.
    These database objects were made for this. Lockfree increasing (or decreasing) numbers for unique ID columns.
    Easy to use. Safe to use.
    In 99.9% of all cases this is what you should use.
    regards,
    Lars

  • Regarding locked(timed)

    HI,
    i got a query from one of my developers that while trying to connect to user they are getting error the account is locked.i checked the account_status from dba_users and it showed me loked(timed).
    when does this happen.
    can any one suggest me.
    regards,
    kishore.

    It happens when you try to login with wrong password.
    So maximum tries depending on values set in your user profile, your user will be locked..
    Regards
    Rajesh

  • Regarding locking changes to a ztable

    hi guys,
    i got a z table and this needs to be locked for changes ( do not maintain entries )in test server and production but it should allow user to maintain entries in development server. i have got 2 roles with me but how do i do this requirement,
    Can any one please suggest me regarding this,
    Thank you
    Pavan kumar Ravikanti

    Hi Pavan,
    Go thru the following links... thought might help you!!
    http://help.sap.com/saphelp_40b/helpdata/es/52/671374439b11d1896f0000e8322d00/content.htm
    http://help.sap.com/saphelp_nw04s/helpdata/en/52/67129F439B11D1896F0000E8322D00/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/4d/6d8939fb613f71e10000000a11402f/frameset.htm
    also there is means to restrict access to the specified tables by assigning it to a request and then having restrictions over the request. But this is done by the administrators ony.
    if you could find a solution let us know!!!
    regards,
    Naveenan.

  • Regarding Locking of PL/SQl Procedure or function

    Hi,
    My PL/SQL code is getting locked. The flow is like this.
    My PL/SQL code writes a particular data into a file which is read by a C program. Once the processing is done then the C driver writes back into anither file called response file from which my PL/SQL code reads from. What is happening is I use dbms_lock.sleep in my PL/SQL code. Now my PL/SQL code is hanging. In the sense when try to recompile my PL/SQL file, it gets timed out saying that It could not lock the object [Function Name]. How can I find out whether any other process is using my File or not. Even if it using how can I release the lock.
    Thanks in avance

    I think you have executed this PL/SQL code earlier and is hung. When you are trying to recompile that, it is not allowing to change the code as it is already being used and "locked".
    You need to find out the session which is holding the lock on this code and kill the same.

  • Regarding Lock

    Hi
    I have a select statement which is being excessed by 2 processes at the same time and is showing a dead lock error when second process executes it . Please let me know how to use parallel process in a sql my query is
    select * from xyz ;
    I have tried using FOR UPDATE also and it didnt work

    > IMPORTANT: A select for update will never cause a dead lock.
    <p>
    Wrong. That should have been written like this:<br>
    <h3>IMPORTANT: A select for update will never cause a dead lock!!!!</h3>
    <p>
    <p>
    > Voilà, that is the solution.
    <p>
    Not really - that is the identification of the problem. The solution is to write code that groks how concurrency and locking work in Oracle. Which is why reading the Oracle® Database Application Developer's Guide - Fundamentals is mandatory for all Oracle developers.
    <p>
    If you write code that runs against or on an Oracle instance.. and you have not read and understood this manual.. you only have yourself to blame for all the problems and frustrations you will have using Oracle.

  • Regarding lock objects

    Hi,
      How can we know that lock objects has been created for table or particular records..
    Naveen M.

    Hi Naveen Kumar,
    Lock Objects usually begin with the letter 'E'  -
    >  For Eg. EZLOCK
    When a lock is created or released it does with the help of some function module.
    Usually when the Lock object is created, a Funtion Module is automatically created which starts with ENQUEUE
    when the Lock object is realeased, a Funtion Module is created which  starts with DEQUEUE.
    For eg. Create a lock object EZLOCK on some ZJK_EKKO table.
    Once its activated, go to se37 and check for function module ENQUEUE_EZLOCK.
    Once v delete this lock object the function module ENQUEUE_EZLOCK is also deleted .
    To Go se84-->ABAP Dictionary > Lock Objects> Give the lock object name.
    usually the lock object wil have the table name in it.
    So if its MARA Table , Search MARA in Lock object name and it ll list out the
    Lock objects and its tables.
    Edited by: Jk on Jul 7, 2009 8:43 AM

  • Regarding Locking the loading of data

    hai
    when i loading the data then im getting that there is a error say like below
    <b>User RIZWANTX locked the load of master datas for characteristic ZTTLLOCK</b>
    My User-id is RIZWANTX
    why this is coming and what it means
    pls tell me
    I will assign the points
    rizwan

    Hi Rizwan,
             Did SM12 solved your problem?
    If not..pls let us know the way you are loading data into ZTTLLOCK?
    If you have scheduled more than one infopackage simultaneously in a PC....Then what happens is the infopackage loading data into ZTTLLOCK locks it.....hence when the other infopackage tries to access that characteristic will get that error.
    If this is the case then try to load One infopackage at a time manually.
    Hope it helps.
    Srini

  • Regarding Locking

    Hi all,
    I need to lock a document when it is open,
    in such a way that the first time a document
    is opened it could be edited and saved,while
    trying to open the same document at the same time when it is opened irrespective of the user need to be read only.
    I need to know what attribute to set when
    the document is opened, for we have userlock,softlock,hardlock,sessionlock,currentsesslock attributes.
    I would like to know which attribute to be used in my case and how to handle the situation.
    Thanks in advance.
    Vivek

    Vivek--
    Assuming we're talking about SMB here, the protocol itself really isn't designed to allow this. Although a client application can notify the protocol that it's opening a file for read/write, then creating a lock on the file, it doesn't lock the file when it's open in read only mode. Therefore, the decision to lock is a negotiation between the client application and the protocol, not something that happens deeper in the file system.

  • Help on locking MySQL tables (many can read, but only one can write) Java

    Hi there,
    I have a question regarding locking of tables so that only one person can write to the file, but many are able to read the files (or tables entities).
    I am not sure if I need to lock the tables in my Java code or do I lock the tables within the MySQL syntax. I'm just a little confused on the matter.
    This java code is a working prototype of inserting a customer data into the database and that works fine. I just don't know how to implement it so that only one person can update the table at a time.
    Here is the Customer.java code that I have written.
    Help would be greatly appreciated, thanks so much.
    package business;
    //~--- non-JDK imports --------------------------------------------------------
    import shared.info.CustomerInfo;
    //~--- JDK imports ------------------------------------------------------------
    import java.sql.*;
    * @author
    public class Customer {
        static Connection    con  = DBConnection.getConnection();
        private CustomerInfo info = new CustomerInfo();
        private String               customerID;
        private String               firstName;
        private String               lastName;
        private String               email;
        private String               addressID;
        private String               homePhone;
        private String               workPhone;
        private String               unitNum;
        private String               streetNum;
        private String               streetName;
        private String               city;
        private String               provinceState;
        private String               country;
        private String               zipPostalCode;
        public Customer(String id) {
            try {
                PreparedStatement pstmt = con.prepareStatement("SELECT * FROM " +
                        "Customer NATURAL JOIN Address WHERE CustomerID = ?");
                pstmt.setString(1, id);
                ResultSet rs = pstmt.executeQuery();
                while (rs.next()) {
                    customerID    = rs.getString("CustomerID");
                    firstName     = rs.getString("FirstName");
                    lastName      = rs.getString("LastName");
                    homePhone     = rs.getString("HomePhone");
                    workPhone     = rs.getString("WorkPhone");
                    email         = rs.getString("Email");
                    city          = rs.getString("City");
                    provinceState = rs.getString("ProvinceState");
                    country       = rs.getString("Country");
                    zipPostalCode = rs.getString("ZipPostalCode");
                    unitNum       = rs.getString("UnitNum");
                    streetNum     = rs.getString("StreetNum");
                    streetName    = rs.getString("StreetName");
                    addressID     = rs.getString("AddressId");
            } catch (SQLException e) {
                e.printStackTrace();
            info.setCustomerID(customerID);
            info.setFirstName(firstName);
            info.setLastName(lastName);
            info.setHomePhone(homePhone);
            info.setWorkPhone(workPhone);
            info.setEmail(email);
            info.setCity(city);
            info.setProvinceState(provinceState);
            info.setCountry(country);
            info.setZipPostalCode(zipPostalCode);
            info.setUnitNum(unitNum);
            info.setStreetNum(streetNum);
            info.setStreetName(streetName);
            info.setAddressID(addressID);
        public static void addCustomer(CustomerInfo cust) {
            try {
                int id = -1;
                PreparedStatement pstmt = con.prepareStatement("INSERT INTO Address" +
                        "(UnitNum, StreetNum, StreetName, City, ProvinceState, Country," +
                        " ZipPostalCode) VALUES(?, ?, ?, ?, ?, ?, ?)");
                pstmt.setString(1, cust.getUnitNum());
                pstmt.setString(2, cust.getStreetNum());
                pstmt.setString(3, cust.getStreetName());
                pstmt.setString(4, cust.getCity());
                pstmt.setString(5, cust.getProvinceState());
                pstmt.setString(6, cust.getCountry());
                pstmt.setString(7, cust.getZipPostalCode());
                pstmt.executeUpdate();
                ResultSet rs = pstmt.getGeneratedKeys();
                rs.next();
                id = rs.getInt(1);
                pstmt = con.prepareStatement("INSERT INTO Customer" +
                        "(FirstName, LastName, HomePhone, WorkPhone, Email, AddressID)"
                        + "VALUES(?, ?, ?, ?, ?, ?)");
                pstmt.setString(1, cust.getFirstName());
                pstmt.setString(2, cust.getLastName());
                pstmt.setString(3, cust.getHomePhone());
                pstmt.setString(4, cust.getWorkPhone());
                pstmt.setString(5, cust.getEmail());
                pstmt.setInt(6, id);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
        public void setFirstName(String newName) {
            try {
                PreparedStatement pstmt = con.prepareStatement("UPDATE Customer"
                                              + " SET FirstName = ? WHERE CustomerID = ?");
                pstmt.setString(1, newName);
                pstmt.setString(2, customerID);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            firstName = newName;
        public void setLastName(String newName) {
            try {
                PreparedStatement pstmt = con.prepareStatement("UPDATE Customer"
                                              + " SET LastName = ? WHERE CustomerID = ?");
                pstmt.setString(1, newName);
                pstmt.setString(2, customerID);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            lastName = newName;
        public String getFirstName() {
            return firstName;
        public String getLastName() {
            return lastName;
        public void setHomePhone(String number) {
            try {
                PreparedStatement pstmt = con.prepareStatement("UPDATE Customer"
                                              + " SET HomePhone = ? WHERE CustomerID = ?");
                pstmt.setString(1, number);
                pstmt.setString(2, customerID);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            homePhone = number;
        public String getHomePhone() {
            return homePhone;
        public void setWorkPhone(String number) {
            try {
                PreparedStatement pstmt = con.prepareStatement("UPDATE Customer"
                                              + " SET WorkPhone = ? WHERE CustomerID = ?");
                pstmt.setString(1, number);
                pstmt.setString(2, customerID);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            workPhone = number;
        public String getWorkPhone() {
            return workPhone;
        public void setEmail(String email) {
            try {
                PreparedStatement pstmt = con.prepareStatement("UPDATE Customer" + " SET Email = ? WHERE CustomerID = ?");
                pstmt.setString(1, email);
                pstmt.setString(2, customerID);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            this.email = email;
        public String getEmail() {
            return email;
        public void setUnitNum(String num) {
            try {
                PreparedStatement pstmt = con.prepareStatement("UPDATE Address" + " SET UnitNum = ? WHERE AddressId = ?");
                pstmt.setString(1, num);
                pstmt.setString(2, addressID);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            unitNum = num;
        public String getUnitNum() {
            return unitNum;
        public void setCity(String city) {
            try {
                PreparedStatement pstmt = con.prepareStatement("UPDATE Address" + " SET City = ? WHERE AddressId = ?");
                pstmt.setString(1, city);
                pstmt.setString(2, addressID);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            this.city = city;
        public String getCity() {
            return city;
        public void setStreetNum(String num) {
            try {
                PreparedStatement pstmt = con.prepareStatement("UPDATE Address" + " SET StreetNum = ? WHERE AddressId = ?");
                pstmt.setString(1, num);
                pstmt.setString(2, addressID);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            streetNum = num;
        public String getStreetNum() {
            return streetNum;
        public void setStreetName(String name) {
            try {
                PreparedStatement pstmt = con.prepareStatement("UPDATE Address"
                                              + " SET StreetName = ? WHERE AddressId = ?");
                pstmt.setString(1, name);
                pstmt.setString(2, addressID);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            streetName = name;
        public String getStreetName() {
            return streetName;
        public void setZipPostalCode(String code) {
            try {
                PreparedStatement pstmt = con.prepareStatement("UPDATE Address"
                                              + " SET ZipPostalCode = ? WHERE AddressId = ?");
                pstmt.setString(1, code);
                pstmt.setString(2, addressID);
                pstmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            zipPostalCode = code;
        public String getZipPostalCode() {
            return zipPostalCode;
        public CustomerInfo getInfo(){
            return info;
        static void deleteCustomer(String customerId) {
            try{
                PreparedStatement pstmt = con.prepareStatement("DELETE FROM Customer" +
                        " WHERE CustomerId = ?");
                pstmt.setString(1, customerId);
                pstmt.executeUpdate();
            }catch(SQLException e){
                e.printStackTrace();
        static void updateCustomer(CustomerInfo custInf) {
            try{
                PreparedStatement pstmt = con.prepareStatement("UPDATE customer" +
                        " SET firstName = ?, SET lastName = ?," +
                        " SET homePhone = ?, SET workPhone = ?, SET email = ?" +
                        " WHERE CustomerId = ?");
                pstmt.setString(1, custInf.getFirstName());
                pstmt.setString(2, custInf.getLastName());
                pstmt.setString(3, custInf.getHomePhone());
                pstmt.setString(4, custInf.getWorkPhone());
                pstmt.setString(5, custInf.getEmail());
                pstmt.setString(6, custInf.getCustomerID());
                pstmt.executeUpdate();
                pstmt = con.prepareStatement("UPDATE address" +
                        " SET unitNum = ?, SET StreetNum = ?, SET StreetName = ?," +
                        " SET city = ?,SET Province = ?,SET country = ?,SET ZipPostalCode = ?" +
                        " WHERE AddressId = ?");
                pstmt.setString(1, custInf.getUnitNum());
                pstmt.setString(2, custInf.getStreetNum());
                pstmt.setString(3, custInf.getStreetName());
                pstmt.setString(4, custInf.getCity());
                pstmt.setString(5, custInf.getProvinceState());
                pstmt.setString(6, custInf.getCountry());
                pstmt.setString(7, custInf.getZipPostalCode());
                pstmt.setString(8, custInf.getAddressID());
                pstmt.executeUpdate();
            }catch(SQLException e){
                e.printStackTrace();
    }In addition, here is my customer sql table.
    -- Table structure for table `customer`
    DROP TABLE IF EXISTS `customer`;
    CREATE TABLE `customer` (
    `CustomerID` mediumint(9) NOT NULL auto_increment,
    `FirstName` varchar(20) NOT NULL,
    `LastName` varchar(20) NOT NULL,
    `HomePhone` varchar(11) NOT NULL,
    `WorkPhone` varchar(11) default NULL,
    `Email` varchar(20) NOT NULL,
    `AddressID` mediumint(9) default NULL,
    PRIMARY KEY (`CustomerID`),
    KEY `AddressID` (`AddressID`),
    CONSTRAINT `customer_ibfk_1` FOREIGN KEY (`AddressID`) REFERENCES `address` (`AddressID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    -- Dumping data for table `customer`
    LOCK TABLES `customer` WRITE;
    /*!40000 ALTER TABLE `customer` DISABLE KEYS */;
    /*!40000 ALTER TABLE `customer` ENABLE KEYS */;
    UNLOCK TABLES;

    to the best of my knowledge, this is something related to the database and not the programming. If you'd want to be the only user to read and edit the table, speicify only one user with that privilege and make it password protected. User must enter the password to write to the tables.

Maybe you are looking for